zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Oracle数据库备份及还原(删除恢复、同步数据)

Oracle数据库备份同步数据 删除 恢复 还原
2023-09-27 14:26:14 时间
Oracle 数据库复制表
--------------------------------------------------------------------------------
create table table_new_name as
select * from table_name
 
 
Oracle 数据库批量处理表(同步表,同步数据,删除)
---------------------------------------------------------------------------------
DECLARE
V_ROW USER_TABLES%ROWTYPE;
CURSOR V_CUR IS
select * from user_tables@DBS; --同步表
--select * from user_tables@DBS a where a.table_name not in (select table_name from user_tables);--同步 不存在的表
V_OP VARCHAR2(100);
BEGIN
OPEN V_CUR; -- 打开游标
LOOP
FETCH V_CUR INTO V_ROW; -- 将游标所在行的数据转存到v_row中
EXIT WHEN V_CUR%NOTFOUND; -- 当游标到最后一行时跳出
DBMS_OUTPUT.PUT_LINE('names= ' || V_ROW.TABLE_NAME);
--v_op:='INSERT INTO '|| v_row.table_name || ' select * from '||v_row.table_name||'@dbs'
v_op:='CREATE TABLE '|| v_row.table_name || ' as select * from '||v_row.table_name||'@dbs'; --同步表
--V_OP := 'drop table ' || V_ROW.TABLE_NAME; --删除表
DBMS_OUTPUT.PUT_LINE(v_op);
EXECUTE IMMEDIATE v_op;
COMMIT;
END LOOP;
CLOSE V_CUR; -- 关闭游标
 
 
Oracle数据库备份及还原
-----------------------------------------------------------------------------------
1、单击开始,这里输入cmd,打开dos窗口
2、输入命令 exp user/password@orcl file=E:\app\beifen.dmp 
备注:user是指备份时,登录数据库实例orcl 的用户名;
password是用户user登录数据库orcl 时的密码;
orcl 是Oracle数据库的实例名。
file=E:\app\beifen.dmp  是指备份文件的存放路径。
3、如果在导出命令的最后加上full=y的参数,也就是
exp user/password@orcl file=E:\app\beifen.dmp  full=y
意思是将用户user在orcl 数据库实例中的所有文件都备份,也就是完整备份
数据还原
4、数据库还原使用语法
imp user/password@orcl file=E:\app\beifen.dmp
注:file=E:\app\beifen.dmp  是指备份文件的存放路径。
 
 
Oracle中误删除数据并commit后的数据恢复办法
------------------------------------------------------------------------------
--1.先备份A表当前数据。
--2.查询某时间点前的SCN号码
SELECT MAX(Scn) FROM Sys.Smon_Scn_Time WHERE Time_Dp < To_Date(某时间点, 'YYYYMMDD hh:mi:ss');
--3.查看某时间点的A表数据
SELECT * FROM A AS OF SCN '步骤2的SCN号';
--4.如果查看数据是想要的数据,则恢复
SELECT row_movement FROM user_tables WHERE table_name = 'A';
--5.步骤4结果如果为DISABLE ,则执行下面这句话,否则跳过
ALTER TABLE A  ENABLE ROW MOVEMENT;
--6.执行
FLASHBACK TABLE A TO SCN '步骤2的SCN号';
--7.如果原来为enable则不用执行,否则执行
ALTER TABLE A DISABLE ROW MOVEMENT;
--8.如果权限不够,就换个DBA用户进行上述操作