起原:chinaitlab
问:公司里的oracle数据库有20G之大(这是一个方案的大小.原本这个方案有30G,我已经把能删的数据都删了),怎样备份?觉得备份一次好慢啊.专家有什么指导一下的吗?(另:20G的数据库是不是备份也要20G多么?)我搁浅能每周备份一次,最好天天一次.
答:设置装备摆设一:首选需求在UNIX下设立创设一个管道(只设立创设一次即可): $mknod ./exp_pipe p
$ ls -l exp_pipe
prw-rw-r-- 1 report group 0 Mar 17 05:20 exp_pipe
然后经过进程管道,将EXP导出的数据直接紧缩,留意:上面二行要写在统一个shell脚本中。 compress < ./exp_pipe >./tmp_now.dmp.Z &
20G的DMP文件,紧缩后的大小在4G摆布。
exp user/passwd@数据库衔接串 file=./exp_pipe direct=y compress=no log=./exp.log
设置装备摆设二:思索到呆板的速度和听从的功效,一样平时不倡议运用exp对数据量大的数据库举办备份,因为对比慢。
oracle的rman备份可以支撑增量备份,你可以本人设置一个备份战略,比如每周日做一次数据库全备份(level 0 级的备份),然后周一周二做增量备份(level 1 级的备份),周三在做一次数据库全备份(level 0),着末周四、周五、周六做数据库的增量备份(level 1)。多么既可以担保你的备份在大部分光阴内对比快,并且也可一担保在需求规复时较快。详尽的备份战略要依据你的要求而定,我只是举个例子。
引见一下什么是Oracle的rman备份:
Oracle 的RMAN备份- -
反省那以后运用谁人spfile文件 : SQL>select name,value from v $parameter where name='spfile';
1。反省数据库的归档体例。如果不是规定体例,则要修改数据库为归档体例。
1.1 以dba帐号上岸,
$ sqlplus '/as sysdba';
SQL>archive log list;
Database log mode No Archive Mode #非归档体例
Automatic archival Enabled
Archive destination /oracle/bakram/log_archive
Oldest online log sequence 161
Current log sequence 163
1.2 如果第一步为 No Archive Mode ,则将数据库修改修改为归档体例
1.2.1 建立存档路子.
$mkdir /oracle/bakram/log_archive
1.2.2 在/oracle/OracleHome/dbs/建立一文件 firstSpfile.ora
文件内容为:
SPFILE="/oracle/OracleHome/dbs/spfileorcyehoo.ora" # 实例称号
log_archive_start=true;
log_archive_format=ARC%T%S.arc #名目
log_archive_dest=/oracle/bakram/log_archive #寄放的路子
1.3 制止数据库
$/oracle/dbstop.sh
1.4 修改归档体例
1.4.1 建立一个dbstartmount.sh文件
--------
echo "begin to start oracle mount..."
lsnrctl start
sqlplus /nolog <
connect /as sysdba
startup mount
exit
exit
sleep 10
echo "oracle have started oracle mount..."
--------
施行./dbstartmount.sh
SQL>alert database archivelog;
Database altered.
将数据库翻开
SQL>alert database open;
Database altered.
SQL>
版权声明:
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始来由 、作者信息和本声明。不然将追查法律责任。