服务器上的SQLserver怎么把数据库备份或者复制到本地
在企业管理器中:
先在本地建一个目的数据库-》右击该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,同步数据
0条评论