Oracle数据库
备份及恢复操作手册
一、UrBackup客户端
UrBackup的安装请参考进行服务器及客户端的安装。1.创建Oracle测试表空间及用户并授权
创建表空间
临时表空间
CREATE TEMPORARY TABLESPACE test_temp
TEMPFILE 'E:\app\Administrator\oradata\orcl\test_temp01.dbf' SIZE 32M
AUTOEXTEND ON
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;
用户表空
CREATE TABLESPACE test_data
LOGGING
DATAFILE 'E:\app\Administrator\oradata\orcl\TEST_DATA01.DBF' SIZE 32M
AUTOEXTEND ON
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;
表空间的路径用户根据不同操作系统或情况进行调整。
创建用户并制定表空间
CREATE USER test IDENTIFIED BY password
DEFAULT TABLESPACE TEST_DATA
TEMPORARY TABLESPACE TEST_TEMP;
给用户授予权限
GRANT
CREATE SESSION, CREATE ANY TABLE, CREATE ANY VIEW ,CREATE ANY INDEX, CREATE ANY PROCEDURE,
ALTER ANY TABLE, ALTER ANY PROCEDURE,
DROP ANY TABLE, DROP ANY VIEW, DROP ANY INDEX, DROP ANY PROCEDURE,
SELECT ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE
TO test;
GRANT dba TO test;
授予用户的角,根据实际场景进行设置,这里为了便于测试,给予了dba 的权限,在生产环境,最好不要给予dba的角。
用登录的用户创建测试备份的测试表sys_users
-- Create table
create table SYS_USERS
(
username varchar2(20) not null,
password varchar2(20)
);
-- Add comments to the columns
comment on column SYS_USERS.username
is '用户名';
comment on column SYS_USERS.password
oracle数据库自动备份方法
is '密码';
-- Create/Recreate primary, unique and foreign key constraints
alter table SYS_USERS
add constraint PK_USERNAME primary key (USERNAME);
添加测试数据
insert into sys_users (username,password) values ('admin','admin');
insert into sys_users (username,password) values ('guest','guest');
insert into sys_users (username,password) values ('zhangsan','zhangsan');
insert into sys_users (username,password) values ('lisi','lisi');
insert into sys_users (username,password) values ('wangwu','wangwu');
commit;
2.Windows
测试安装的Oracle版本:oracle11G
安装路径:E:\app
UrBackup安装路径:C:\Program files\
配置默认备份文件夹为:E:\backup
(1)使用export
执行备份
通过Oracle创建directory
一般创建directory都是为了用数据泵导入/导出数据用
通过windows的cmd窗口执行创建directory,并给对应的备份用户授权读写的权限。
sqlplus / as sysdba
create or replace directory dump_backup as 'E:\backup';
create or replace directory dump_restore as 'E:\restore';
grant read,write on directory dump_backup to test;
grant read,write on directory dump_restore to test;
其中dump_backup as 'E:\backup' 用于存放导出的备份文件。
其中dump_restore as 'E:\restore'用于存放导入的还原备份文件。
已创建的directory查看
select * from dba_directories
编写UrBackup对应的备份之前的脚本:C:\Program files\UrBackup\prefilebackup.bat,内容如下:
@echo off
del /Q E:\backup\*
E:\app\Administrator\product\11.2.0\dbhome_1\ FULL=Y DIRECTORY=dump_backup DUMPFILE=exp.dmp USERID=test/password 注意:上面脚本中的DIRECTORY的名称,为您上面创建的directory。
脚本编写完成之后,可以在windows的窗口下执行prefilebackup.bat,看备份是否成功。
然后通过客户端执行备份。
备份完成之后,删除用户test表sys_users中不是admin的用户。
删除不是admin的用户,然后通过恢复功能恢复用户表的数据。
delete from SYS_USERS where username!='admin'
执行恢复
从服务器下载刚才备份的文件exp.dmp,并放到上面用于还原的文件夹E:\restore。
在目录下创建恢复的脚本restore.bat,放入下面的内容:
@echo off
E:\app\Administrator\product\11.2.0\dbhome_1\ FULL=Y DIRECTORY=dump_restore DUMPFILE=exp.dmp USERID=test/password  REUSE_DATAFILES=Y TABLE_EXISTS_ACTION=REPLACE
然后双击执行还原即可。
注意:根据实际业务场景调整对应的脚本中的USERID,备份跟还原两者要一一对应。
导入过程中遇见的错误解决办法:
ORA-39126: 在KUPW$WORKER.PROCESS_TABLE_EXISTS_ACTION [TABLE:"IX"."AQ$_STREAMS_QUEUE_TABLE_T"] 中Worker 发生意外致命错误ORA-24019: QUEUE_TABLE 的标识符过长, 不可大于24 个字符
ORA-00955: 名称已由现有对象使用
ORA-06512: 在"SYS.DBMS_SYS_ERROR", line 95
ORA-06512: 在"SYS.KUPW$WORKER", line 8165
----- PL/SQL Call Stack -----
object line object
handle number name
000007FFB9D75938 18990 package body SYS.KUPW$WORKER
000007FFB9D75938 8192 package body SYS.KUPW$WORKER
000007FFB9D75938 14941 package body SYS.KUPW$WORKER
000007FFB9D75938 15739 package body SYS.KUPW$WORKER
000007FFB9D75938 15377 package body SYS.KUPW$WORKER
000007FFB9D75938 3945 package body SYS.KUPW$WORKER

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。