最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Linux中Oracle数据库备份方法
时间:2022-06-29 10:00:40 编辑:袖梨 来源:一聚教程网
先来介绍一些不使用脚本我们直接使用命令备份与还原oracle数据库
Oracle数据备份:
步骤 1 备份用户数据。
1.使用linux系统下的数据库管理员账号连接linux终端。
2. 执行以下语句,创建“bak_dir”文件夹。
代码如下 | 复制代码 |
mkdir bak_dir |
3. 执行以下语句,为“bak_dir”文件夹赋予读、写和执行权限。
代码如下 | 复制代码 |
chmod 777 bak_dir |
4. 执行以下语句,以sysdba用户登录oracle数据库服务器。
sqlplus 数据库管理员账号/密码@数据库实例名 as sysdba
5. 执行以下语句,将“bak_dir”指定为“/opt/oracle/bak_dir”。
代码如下 | 复制代码 |
create or replace directory bak_dir as '/opt/oracle/bak_dir' commit |
6. 执行以下语句,将“bak_dir”的读、写和执行权限赋给xx(数据用户名)用户。
代码如下 | 复制代码 |
grant all on directory bak_dir to xx |
commit
7. 执行以下语句,退出oracle数据库服务器。
代码如下 | 复制代码 |
quit |
执行以下语句,将sysdb用户的表备份到“bak_dir”目录下。
8.
代码如下 | 复制代码 |
expdp xx(要导出表所在的数据库用户名)/xx(密码)@数据库实例名 directory=bak_dir dumpfile=expdb_xx.dmp logfile=expdb_xxlog tables=表名
|
Oracle数据还原:
1.在命令行输入:
代码如下 | 复制代码 |
sqlplus "/as sysdba" |
2. 执行以下语句登录xx数据库,用户名:xx,密码:xx(请输入当地实际密码)
conn xx/xx;
3.如果恢复的表中有涉及到触发器的请停止触发器,例:A表
代码如下 | 复制代码 |
alter table A disable all triggers; commit; |
4. 执行以下语句退出当前用户
quit;
5. 执行以下语句,恢复用户数据。
代码如下 | 复制代码 |
impdp xx/xx@数据库实例名 directory=bak_dir table_exists_action=truncate dumpfile=expdb_xx.dmp logfile=impdb_xx.log |
5.在命令行输入:sqlplus "/as sysdba"
6. 执行以下语句登录xx数据库,用户名:xx,密码:xx(请输入当地实际密码)
conn xx/xx;
7. 执行以下语句打开被禁止的触发器
代码如下 | 复制代码 |
alter table A enable all triggers; commit; |
上面方法是可以实现我们想要的,但但大型WEB服务器肯定是要自动定时进行备份的。
例
代码如下 | 复制代码 |
|
用Test用户登录,创建一个表,并插入两条数据:
代码如下 | 复制代码 |
1.create table t1( |
先写一个导出的脚本文件:
代码如下 | 复制代码 |
1.export ORACLE_BASE=/u01/app |
前4句是设置环境变量,因为crontab定时调用时,不会使用oracle用户的环境变量,所以要先把它们导进来。第6行以当前日期作为导出的文件名,例如20120626.dmp和20120626.log。第7行把这两个文件打成一个zip包,并删掉这两个文件。
要用chmod命令把这个sh标记为可执行:
代码如下 | 复制代码 |
1.chmod +x backup.sh |
用oracle用户,输入crontab -e命令,编辑oracle用户的任务计划:
代码如下 | 复制代码 |
1.[oracle@localhost backup]$ crontab -e |
这样就可以了,利用linux计划任务就实现了。
备份策略:
星期天 0 级
星期一,二,四,五,六 2 级
星期三 1 级
代码如下 | 复制代码 |
--创建本地管理路径 mkdir -p /dinglp/ora_managed/backup mkdir -p /dinglp/ora_managed/backup/log --创建rman表空间和rman用户 create tablespace rman_tbs datafile '/oradata/luke/rman_tbs01.dbf' size 1024M; --注册catalog 数据库 rman catalog rman_dlp/dlp --设置备份参数 configure retention policy to redundancy 2; --以下是备份脚本(可以通过vi进行编辑) --倒出RMAN用户数据脚本exp_rman.par --倒出RMAN数据SHELL脚本exp_rman.sh --零级备份RMAN脚本rman_bk_LEVEL0.rcv --零级备份SHELL脚本的rman_bk_LEVEL0.sh --一级差异增量备份RMAN脚本rman_bk_LEVEL1.rcv --一级差异增量备份SHELL脚本rman_bk_LEVEL1.sh --二级差异增量备份RMAN脚本rman_bk_LEVEL2.rcv --二级差异增量备份SHELL脚本rman_bk_LEVEL2.sh --提高RMAN增量备份性能 alter database enable block change tracking using file '/u01/app/Oracle/admin/devdb/bdump/luke.log'; desc v$block_change_tracking; --RMAN 动态视图 --如何监视复制进程 --linux下自动运行备份脚本 [root@dlp ~]# vi /etc/crontab SHELL=/bin/bash # run-parts --完毕,RYOHEI,2010-08-04。 |
相关文章
- 人们熟悉的寄居蟹属于以下哪种分类 神奇海洋11月21日答案 11-21
- 第五人格11.22共研服有什么更新 11月22日共研服更新内容介绍 11-21
- 原神恰斯卡怎么培养 11-21
- 无期迷途四星装束是谁 11-21
- 王者荣耀帝丹高中校服怎么获得 11-21
- 光遇姆明季后续版本怎么玩 11-21