数据库用命令备份-恢复完成步骤

基本数据库备份恢复步骤:

select * from v$version;--查看数据库版本

-----------恢复数据泵 start  -----

步骤一:表空间操作
1、查询数据库空间
select * from dba_data_files;--查所有
select * from dba_data_files where tablespace_name ='ECASYS';--查当指定
drop  tablespace BGSYS;--删除无用的表用表空间
2、创建数据库空间
create tablespace ECASYS 
datafile 'D:\APP\ALIENWARE\ORADATA\ORCL\ECASYS.dbf' --'D:\APP\ALIENWARE\ORADATA\ORCL\ECASYS.dbf' 
size 1500M 
autoextend on next 20M Maxsize unlimited;

步骤二:用户操作
1、查询用户
select * from dba_users; 
select * from all_users;
2、创建用户
CREATE USER NSGC PROFILE DEFAULT 
    IDENTIFIED BY NSGC DEFAULT TABLESPACE ECASYS 
    TEMPORARY TABLESPACE TEMP 
    ACCOUNT UNLOCK;
3、创建权限      
GRANT CONNECT,DBA TO NSGC;--登录授权,不授权则没有登录权限
grant create any table,
create table,
alter any table,
drop any table,
select any table,
insert any table,
delete any table,
execute any procedure,
unlimited tablespace,
update any table to NSGC;
grant all privileges to NSGC; --为该用户赋予所有权限
grant dba to NSGC; --为该用户赋予dba角色

步骤三:配置修改:项目专用表,与平常恢复数据库无关,可不予理会
---配置表 SLClient/RedisHost  !Mh6MS5OPh@127.0.0.1:6379    ---
select * from Sys_paramconfig for update 

步骤四:命令备份恢复库
--cmd-备份数据库
expdp NSGC/NSGC@172.29.4.27/orcl directory=DATA_PUMP_DIR dumpfile=NSGC%date:~0,4%%date:~5,2%%date:~8,2%%time:~1,1%%time:~3,2%%time:~6,2%.dmp
--cmd-恢复数据库--NS_OA/NS_OA@192.168.126.107/orcl目标数据库用户,dumpfile=要恢复的数据库文件  , REMAP_SCHEMA=备份文件数据库的用户名:目标数据库用户名
impdp NSGC/NSG@192.168.126.107/orcl directory=DATA_PUMP_DIR dumpfile=NSGC2023042611812.DMP  REMAP_SCHEMA=NSGC:NSGC

操作失误后数据恢复步骤 

------------操作失误后,恢复数据方法  start---------------
--数据更改提交了之后发现改错了,又不能rollback的时候恢复数据的方法--注:只限数据库修改3小时内,所以操作数据库还是要仔细。
--execute执行后 可以回滚,commit提交后 不可以回滚。其实Oracle提交数据是分两步操作的,第一步execute执行,第二步commit提交。对应的PL\SQL也是要先点execute执行,执行后再点commit提交。但是 commit提交后 可以用闪回查询恢复原来的数据 因为oracle会将近期的数据保存到快照中 如:
SELECT * FROM TABLE_1 AS OF TIMESTAMP TO_TIMESTAMP('20080606 20:00:00','YYYYMMDD HH24:MI:SS');
--这里'20080606 20:00:00'就是你想恢复数据到哪个时间状态 TABLE_1是数据库的表名 这样查询到的数据就是执行更新操作之前的数据,然后就可以把之前的数据重新复制到表中
--第一步:在v$sqlarea 这视图里面找到你操作那条SQL的时间;
select r.FIRST_LOAD_TIME,r.* from v$sqlarea r order by r.FIRST_LOAD_TIME desc ;
--第二步: 操作成功后你看看新表里面是不是你之前的数据.如果是的话再把新表数据弄到原表就好了
create table t_table_recove --新表
As select * from t_table--你操作的那张表 as of timestamp to_timestamp('2010-06-02 11:36:53','yyyy-mm-dd hh24:mi:ss');

 将用户A的所有表赋予用户B查询权限。

---1.查询数据库空间
select * from dba_data_files where tablespace_name ='ECASYS';
---2.创建共享用户
CREATE USER CT_SJZL PROFILE DEFAULT 
    IDENTIFIED BY CT_SJZL DEFAULT TABLESPACE ECASYS 
    TEMPORARY TABLESPACE TEMP 
    ACCOUNT UNLOCK;
---赋予权限      
GRANT CONNECT,DBA TO CT_SJZL;
---查询共享库对应表,grant select on table_name to UserA
select 'grant select on '||owner||'.'||object_name||' to CT_SJZL;'
from dba_objects
where owner in ('NSGC') and object_type='TABLE';
--授权查询-367张表,把所有查询出的语句执行一遍(就是全表),部分就是指定表
grant select on NSGC.YWSLFWSPB to CT_SJZL;
grant select on NSGC.YWDM to CT_SJZL;
grant select on NSGC.XXZXCTXXB to CT_SJZL;
...

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值