服务器上的SQLserver怎么把数据库备份或者复制到本地

服务器上的SQLserver怎么把数据库备份或者复制到本地,第1张

在企业管理器中:

先在本地建一个目的数据库-》右击该DB-》所有任务-》导入数据-》在源数据库选择对话框中,将“服务器”选择为你所要的Server,填入登录名及密

码,选择要导入的数据库-》在目的数据库选择对话框中,用默认值或再自行选择-》选择“复制数据库间的对象和数据”-》接下来next即可

用exp命令即可完成,但要看具体的备份方式。

  1 导出一个完整数据库

    exp system/manager file=bible_db log=dible_db full=y

  

  2 导出数据库定义而不导出数据

    exp system/manager file=bible_db log=dible_db full=y rows=n

  

  3 导出一个或一组指定用户所属的全部表、索引和其他对象

    exp system/manager file=seapark log=seapark owner=seapark

    exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)

  注意:在导出用户时,尽管已经得到了这个用户的所有对象,但是还是不能得到这些对象引用的任何同义词。解决方法是用以下的SQLPlus命令创建一个脚本文件,运行这个脚本文件可以获得一个重建seapark所属对象的全部公共同义词的可执行脚本,然后在目标数据库上运行该脚本就可重建同义词了。

  

    SET LINESIZE 132

    SET PAGESIZE 0

    SET TRIMSPOOL ON

    SPOOL c:\seaparksyn

    SELECT 'Create public synonym '||synonym_name

    ||' for '||table_owner||''||table_name||';'

    FROM dba_synonyms

    WHERE table_owner = 'SEAPARK' AND owner = 'PUBLIC';

    SPOOL OFF

  

  4 导出一个或多个指定表

    exp seapark/seapark file=tank log=tank tables=tank

    exp system/manager file=tank log=tank tables=seaparktank

    exp system/manager file=tank log=tank tables=(seaparktank,amyartist)

  

  5 估计导出文件的大小

  全部表总字节数:

  SELECT sum(bytes)

  FROM dba_segments

  WHERE segment_type = 'TABLE';

  

  seapark用户所属表的总字节数:

  SELECT sum(bytes)

  FROM dba_segments

  WHERE owner = 'SEAPARK'

  AND segment_type = 'TABLE';

  

  seapark用户下的aquatic_animal表的字节数:

  SELECT sum(bytes)

  FROM dba_segments

  WHERE owner = 'SEAPARK'

  AND segment_type = 'TABLE'

  AND segment_name = 'AQUATIC_ANIMAL';

  

  6 导出表数据的子集(oracle8i以上)

  NT系统:

  

  exp system/manager query='Where salad_type='FRUIT'' tables=amysalad_type

    file=fruit log=fruit

  UNIX系统:

  

  exp system/manager query=\"Where salad_type=\'FRUIT\'\" tables=amysalad_type

    file=fruit log=fruit

  

  7 用多个文件分割一个导出文件

    exp system/manager

    file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)

    log=paycheck, filesize=1G tables=hrpaycheck

  

  8 使用参数文件

    exp system/manager parfile=bible_tablespar

  bible_tablespar参数文件:

  

    #Export the sample tables used for the Oracle8i Database Administrator's Bible

    file=bible_tables

    log=bible_tables

    tables=(

    amyartist

    amybooks

    seaparkcheckup

    seaparkitems

    )

  

  9 增量导出

  “完全”增量导出(complete),即备份整个数据库

  exp system/manager inctype=complete file=990702dmp

  “增量型”增量导出(incremental),即备份上一次备份后改变的数据

  exp system/manager inctype=incremental file=990702dmp

  “累计型”增量导出(cumulative),即备份上一次“完全”导出之后改变的数据

  exp system/manager inctype=cumulative file=990702dmp

备份:

EXP的用户名/密码@远程计算机连接到要备份的文件=文件路径

注意远程数据库的IP /名称:该用户必须具有DBA权限

例子:

EXP磡/ hom@192168514 / QA文件= D:\ aa1dmp

如果可以直连数据库的话,就用 EXP导出即可。

或者是用RMAN备份,备份的手段很多,甚至存储过程都可以辅助备份。

如果是不能直接通过SQLPLUS连接数据库。(本地客户端就没用了)

方法一:登录上 2008 的远程终端,用ORACLE客户端程序做 EXP导出,然后再通过FTP等方法传回本地,或者放在WEB服务器的目录下,用HTTP下载(这个有安全风险)

方法二:自己写应用程序,部署到服务器上,通过服务器应用程序访问数据库,执行备份工作。

Mysql数据库备份和还原常用的命令是进行Mysql数据库备份和还原的关键,没有命令,什么都无从做起,更谈不上什么备份还原,只有给系统这个命令,让它去执行,才能完成Mysql数据库备份和还原的操作,下面为大家分享一下操作的常用的命令。

一、备份命令

1、备份MySQL数据库的命令

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://wwwCodeHighlightercom/

-->  mysqldump-hhostname-uusername-ppassword databasename>backupfilesql

2、备份MySQL数据库为带删除表的格式

备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://wwwCodeHighlightercom/

-->  mysqldump-–add-drop-table-uusername-ppassword databasename>backupfilesql

3、直接将MySQL数据库压缩备份

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://wwwCodeHighlightercom/

-->  mysqldump-hhostname-uusername-ppassword databasename|gzip>backupfilesqlgz

4、备份MySQL数据库某个(些)表

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://wwwCodeHighlightercom/

-->  mysqldump-hhostname-uusername-ppassword databasename specific_table1 specific_table2>backupfilesql

5、同时备份多个MySQL数据库

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://wwwCodeHighlightercom/

-->  mysqldump-hhostname-uusername-ppassword –databases databasename1 databasename2 databasename3>multibackupfilesql

6、仅仅备份数据库结构

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://wwwCodeHighlightercom/

-->  mysqldump –no-data –databases databasename1 databasename2 databasename3>structurebackupfilesql

7、备份服务器上所有数据库

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://wwwCodeHighlightercom/

-->  mysqldump –all-databases>allbackupfilesql

二、还原命令

1、还原MySQL数据库的命令

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://wwwCodeHighlightercom/

-->  mysql-hhostname-uusername-ppassword databasename<backupfilesql

2、还原压缩的MySQL数据库

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://wwwCodeHighlightercom/

-->  gunzip<backupfilesqlgz|mysql-uusername-ppassword databasename

3、将数据库转移到新服务器

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://wwwCodeHighlightercom/

-->  mysqldump-uusername-ppassword databasename|mysql –host=-C databasename

总结

做好数据备份和还原,定好合适的备份策略,这是一个DBA所做事情的一小部分,万事开头难,就从现在开始吧!

  一、数据备份的重要性  工作中,如果意外删除了重要的文件或者目录的话,那结果可就惨了。尤其是当误删除的数据涉及重要的客户或者关键项目,并且这些数据无法轻易重新创建的时候,那滋味,不用我说你也能想象得到。不巧的是,像这样的数据在公司环境中随处可见,例如销售记录、客户****,等等。  二、关于mysqldump  MySQL自身提供了许多命令行工具,例如mysql工具可以用来与MySQL的数据库模式、数据、用户和配置变量进行交互,而mysqladmin工具则可以进行各种管理任务,还有就是下面将要介绍的mysqldump。此外还有很多,不过那超出了本文的讨论范围。工具mysqldump既可以用来备份数据库模式,还可以用来备份数据;利用它,我们不仅可以对一个服务器上的所有数据库进行地毯式的备份,同时我们还可以选择性地备份某个数据库,甚至数据库中指定的某些表。  当在服务器上安装MySQL的时候,应修改系统路径以便使全局命令行可以访问各个客户程序。打开终端窗口,并执行下列命令:%mysqldump Usage: mysqldump[OPTIONS]database[tables]ORmysqldump[OPTIONS]--databases [OPTIONS] DB1 [DB2 DB3] OR mysqldump [OPTIONS] --all-databases [OPTIONS]Formore options,usemysqldump--help  这里给出了使用mysqldump程序的方法。举例来说,若要备份所有数据库模式和数据至文件backup092210sql的话,可以执行如下所示的命令:%mysqldump-u root-p--all-databases backup092210sql Enter password:  这里,为了能够访问所有数据库,我们需要一个root权限,所以这里需要在提示符后面输入相应口令。此外,如果你是在开发用的服务器上练习这些命令的话,不妨花一些时间看看备份文件的内容。这时您会看到一系列的SQL语句,先是删除各个表后重新创建的语句,然后是重新创建相关数据的语句。另外,由于上面的例子中我们对所有数据库进行备份,所以您还会发现,备份文件将创建每个数据库(如果它还没有存在的话),然后通过USE命令切换到该数据库,进而创建与该数据库相关的表跟数据。  若要备份单个数据库,例如要备份名为wiki的数据库到一个名为wiki-backup092210sql的文件中,我们可以使用如下所示的命令:%mysqldump-u root-p wikiwiki-backup092210sql Enter password:  最后,若要备份数据库中名为users的表的话,例如要把它备份到名为wikiusers-backup092210sql的文件中,我们可以使用如下所示的命令:%mysqldump-u root-p wiki userswikiusers-backup092210sql Enter password:  三、调整备份内容  有时候,我们可能只想备份数据库的模式,或者只想备份数据库的数据。为了备份数据库模式,可以向mysqldump传递参数--no-data,如下所示:%mysqldump-u root-p--no-data wiki wiki-backup092210sql  对于前面所举的例子,仅需要少量的击键次数就能执行mysqldump命令。然而,工作中要干的活还有很多,并且如果老是执行这些命令的话,那么生活就会变得太单调了。因此,我们可以设法使这些过程自动化,这时我们可以借助cron工具来达成我们的目标,这个工具在所有类UNIX操作系统上都能找到。为了自动执行备份任务,我们需要新建一个正确命名的文件。例如nightly-backupsh,具体命令如下所示:  #!/bin/sh mysqldump-uroot-psecret wiki/home/backup/sql/wiki-backup-`date+%m%d%Y`sql  当我们执行这个脚本的时候,它会将wiki数据库备份到一个按照备份时间命名的文件中,如wiki-backup-092210sql。您需要注意一下这里的用户名root和口令secret是如何传递给mysqldump的,即将它们分别放到选项- u和- p后面。从安全的角度讲,我们必须进行正确的权限设置。  接下来,我们将这个脚本提供交给cron,方法是使用crontab。为此,我们可以执行如下所示的命令:  %crontab-e  这将打开当前登录用户的crontab文件,如果该文件不存在的话就会自动新建一个。在这个文件中,我们可以添加如下内容,来确保每天上午3时运行该备份脚本:  03/home/backup/scripts/nightly-backupsh  如果您对crontab的语法很陌生的话,这里的参数可能让您摸不着头脑。这里前五个参数分别对应于执行脚本的时间,依次为分、时、日、月和星期几。因此,要想在每星期二的4:45am执行脚本的话,可以使用参数45 4 3。  插入上面所示的一行内容后,保存文件,那么我们的任务就会开始按照给定时间调度执行。 需要注意的是,第二天早上一定要查看相应的目录,看看事情是否一切正常。  五、其它备份方案  就像本文前面所说的那样,mysqldump只是MySQL众多备份方案中的一个。此外,您还可以使用MySQL的二进制日志文件进行增量备份,或者使用从MySQL主服务器中将数据复制到从服务器中。  六、小结  本文中,我们与读者一道建立了一个简单的MySQL备份解决方案。如果您之前还未实施任何解决方案的话,不妨立即动手试一下。重要的是,这只需要花费您几分钟的时间,我想这是很划得来的。

1、你可以在数据库A做计划任务,用exp或者expdp导出,然后scp或者rsync到服务器B

例如计划任务0 0 /data1/backup/expdp_db_baksh;

expdp_db_baksh内容:

#!/bin/sh

~/bash_profile

dst=/data1/backup/db_bak

today=`date +%F`

bakfile=expdp_db_${today}dmp

logfile=expdp_db_${today}log

expdp 'user01/778899' DIRECTORY=expdp_dir1 parallel=2 \

dumpfile=$bakfile SCHEMAS=user01 logfile=$logfile COMPRESSION=all

scp -P22 $bakfile oracle@1721615:/data1/backup/db_bak

exit 0;

2、也可以在服务器B用exp直接导出数据

exp 'user01/778899@DB01' file=$bakfile FULL=Y log=baklog

3、开启归档模式,在服务器A用rman 做全备或增量备份,然后将备份同步到服务器B

指定路径

CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/data1/rman/full_%d_%U';

全备份,默认Format

backup incremental level 0 database;

增量备份

backup incremental level 1 database;

将备份rsync 到服务器B

/usr/bin/rsync -av '-e ssh -p 22' oracle@1721611:/data1/rman /data1

4、开启归档模式,在服务器AB间配置DATAGURAD,同步数据

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 服务器上的SQLserver怎么把数据库备份或者复制到本地

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情