oracle的功能比较强大,但也可以借助多备份这种应用进行备份。
怎样用命令备份还原Oracle数据库?
Oracle中没有备份和还原的概念,应该叫导出和导入。
一、导出:
1.获取帮助
exphelp=y
2.导出一个完整数据库
expsystem/managerfile=bible_dblog=dible_dbfull=y
3.导出数据库定义而不导出数据
expsystem/managerfile=bible_dblog=dible_dbfull=yrows=n
4.导出一个或一组指定用户所属的全部表、索引和其他对象
expsystem/managerfile=seaparklog=seaparkowner=seapark
expsystem/managerfile=seaparklog=seaparkowner=(seapark,amy,amyc,harold)
注意:在导出用户时,尽管已经得到了这个用户的所有对象,但是还是不能得到这些对象引用的任何同义词。解决方法是用以下的SQL*Plus命令创建一个脚本文件,运行这个脚本文件可以获得一个重建seapark所属对象的全部公共同义词的可执行脚本,然后在目标数据库上运行该脚本就可重建同义词了。
SETLINESIZE132
SETPAGESIZE0
SETTRIMSPOOLON
SPOOLc:\seapark.syn
SELECT'Createpublicsynonym'||synonym_name
||'for'||table_owner||'.'||table_name||';'
FROMdba_synonyms
WHEREtable_owner='SEAPARK'ANDowner='PUBLIC';
SPOOLOFF
5.导出一个或多个指定表
expseapark/seaparkfile=tanklog=tanktables=tank
expsystem/managerfile=tanklog=tanktables=seapark.tank
expsystem/managerfile=tanklog=tanktables=(seapark.tank,amy.artist)
6.估计导出文件的大小
全部表总字节数:
SELECTsum(bytes)
FROMdba_segments
WHEREsegment_type='TABLE';
seapark用户所属表的总字节数:
SELECTsum(bytes)
FROMdba_segments
WHEREowner='SEAPARK'
ANDsegment_type='TABLE';
seapark用户下的aquatic_animal表的字节数:
SELECTsum(bytes)
FROMdba_segments
WHEREowner='SEAPARK'
ANDsegment_type='TABLE'
ANDsegment_name='AQUATIC_ANIMAL';
7.导出表数据的子集(oracle8i以上)
NT系统:
expsystem/managerquery='Wheresalad_type='FRUIT''tables=amy.salad_type
file=fruitlog=fruit
UNIX系统:
expsystem/managerquery=\"Wheresalad_type=\'FRUIT\'\"tables=amy.salad_type
file=fruitlog=fruit
8.用多个文件分割一个导出文件
expsystem/manager
file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck,filesize=1Gtables=hr.paycheck
9.使用参数文件
expsystem/managerparfile=bible_tables.par
bible_tables.par参数文件:
#ExportthesampletablesusedfortheOracle8iDatabaseAdministrator'sBible.
file=bible_tables
log=bible_tables
tables=(
amy.artist
amy.books
seapark.checkup
seapark.items
)
10.增量导出
“完全”增量导出(complete),即备份整个数据库
expsystem/managerinctype=completefile=990702.dmp
“增量型”增量导出(incremental),即备份上一次备份后改变的数据
expsystem/managerinctype=incrementalfile=990702.dmp
“累计型”增量导出(cumulative),即备份上一次“完全”导出之后改变的数据
expsystem/managerinctype=cumulativefile=990702.dmp
二、导入:
1.获取帮助
imphelp=y
2.导入一个完整数据库
impsystem/managerfile=bible_dblog=dible_dbfull=yignore=y
3.导入一个或一组指定用户所属的全部表、索引和其他对象
impsystem/managerfile=seaparklog=seaparkfromuser=seapark
impsystem/managerfile=seaparklog=seaparkfromuser=(seapark,amy,amyc,harold)
4.将一个用户所属的数据导入另一个用户
impsystem/managerfile=tanklog=tankfromuser=seaparktouser=seapark_copy
impsystem/managerfile=tanklog=tankfromuser=(seapark,amy)touser=(seapark1,amy1)
5.导入一个表
impsystem/managerfile=tanklog=tankfromuser=seaparkTABLES=(a,b)
6.从多个文件导入
impsystem/managerfile=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck,filesize=1Gfull=y
7.使用参数文件
impsystem/managerparfile=bible_tables.par
bible_tables.par参数文件:
#ImportthesampletablesusedfortheOracle8iDatabaseAdministrator's
Bible.fromuser=seaparktouser=seapark_copyfile=seaparklog=seapark_import
8.增量导入
impsystem./managerinctype=RECTOREFULL=YFILE=A
如何备份数据库?PL/SQLdeveloper
1、PL/SQLdeveloper只能将数据库中的数据或存储过程进行导入、导出,不是真正意义上的备份。如果只是将关键数据备份出来,可以使用它的相关功能:
tools->exportuserobject选择选项,导出.sql文件。
tools->exporttables->OracleExport选择选项导出.dmp文件。
2、要对数据库作真正意义上的备份,要在安装ORACLE的服务器上运行备份"exp"命令,打开命令提示符窗运行以下指令:
exp管理帐户/密码@数据库名file=备份文年名.dmpfull=yINDEXES=ygrants=yconstraints=ycompress=ylog=log文件名.log
相关知识:
1、PL/SQLdeveloper是一个很多人使用的操作ORACLE数据库的工具。
2、还原用exp导出的数据库用imp命令。
3、ORACLE的操作友好度小于MSSQL。
oracle数据库备份怎么做?
这个太多了,简单的说下吧
物理备份:要看你数据库是不是归档,selectlog_modefromv$database;要是archivelog就是归档,noarchivelog就是非归档。
归档模式下可以进行热备(开着数据库):用RMAN的话登录rman:在数据库的服务器上rMantarget/
backupdatabase;或者增量backupincrementallevelXdatabase;(X是你的增量级别),你也可以单个数据文件,控制文件,归档日志备份。
或者镜像backupascopydatabase;
你也可以在语句后面加format'路径/命名'对备份命名。
不使用RMAN,先alterdatabasebeginbackup;(全库)或altertablespace表空间名beginbackup;(单个表空间),然后到操作系统下直接复制数据文件,最后alterdatabaseendbackup;
或altertablespace表空间名endbackup;
非归档:只能冷备(必须关闭数据库,只能备份全库)
rman:先正常关闭数据库,登录RMAN:先startupmount,然后按热备的命令走可以增量,但只能备份全库;
自己备的话:关库以后直接考,不用输alterdatabase那些命令。
逻辑备份(只能恢复逻辑错误,不能回复受损文件的):
10g、11g下面用expdp命令:expdp登录名/密码@注册的实例full=yparallel=1dumpfile=名字.dmpcompression=all;导出整个库,当然还可以单个表,或用户的对象导出等。9i以前的用exp命令,具体命令
自己查查吧。物理备份相对安全,可以完全恢复数据库(当然是在归档模式下),逻辑备份只能恢复逻辑上的数据,文件恢复不了。逻辑备份比物理备份更快更省空间。
本站所有文章,未经允许一律不允许转载,违者后果自负
本站为SEO教学博客,学到东西应该懂得感恩作者 无脑喷子永封IP段+删帐号所有评论
本站部分文章存在于网上收集,如侵犯您的权利,请告知管理员,我们会及时删除,并向您赔礼道歉.
百秀社区 | 爱站云 官方QQ群:333914614