Oracle 常用命令
博客专区 > cccyb 的博客 > 博客详情
Oracle 常用命令
cccyb 发表于2年前
Oracle 常用命令
  • 发表于 2年前
  • 阅读 12
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

 

(1)查询备份目录:

select * from all_directories

 

(2)备份导出:

expdp usreid='facial/facial@orcl' schemas=facial directory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log version=10.2.0.1.0

备份导入:

(2.1) 不同用户、不同表空间

impdp userid='dzds/dzds' remap_schema=hx_zsj:dzds remap_tablespace=HX_DAT:users  directory=DATA_PUMP_DIR dumpfile=HX_ZSJ.DMP

Remap_tablespace如果需要转换多个表空间,如A1转换成B1,A2转换成B1,有如下两种方式

remap_tablespace=A1:B1 remap_tablespace=A2:B1

remap_tablespace= A1:B1, A2:B1

(2.2) 用户、表空间均一致

impdp userid='dzds/dzds'  schemas=hx_zsj directory=DATA_PUMP_DIR dumpfile=HX_ZSJ.DMP

(2.3) 覆盖旧表

impdp userid='dzds/dzds' TABLE_EXISTS_ACTION=REPLACE schemas=hx_zsj directory=DATA_PUMP_DIR  dumpfile=HX_ZSJ.DMP 

(2.4)  imp不知导出用户名导入

imp show/show008@showdb51 file=95tab.dmp fromuser=show touser=show buffer=20480000

如果不知道 fromuser 可用 FULL=Y 替代 fromuser  touser 参数

imp show/show008@showdb51 file=95tab.dmp FULL=Y buffer=20480000

imp 导入指定表空间


imp username/password file='E:\share\test\test.dmp' tablespaces=TEST fromuser=A touser=B tables=TT_A

表空间指定不过去的解决办法,执行下面的语句

 revoke unlimited tablespace from user_name; --撤销权限
 alter user your_user_name quota 0 on system;   --撤销允许在system分配空间
 alter user your_user_name quota unlimited on your_tablespace_name;

参考:

http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E7%9F%A5%E9%81%93/11321.shtml

(3)11g空表导不出问题

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null(注意:很多教程没有这里,这里是有可能位空的)

(4) 快照数据找回

select * from test_table as of timestamp to_Date('2016-07-10 15:28:00', 'yyyy-mm-dd hh24:mi:ss')

(6)设置密码不过期

 alter profile default  limit password_life_time unlimited;

 commit;  

进行以上步骤之后需要改变密码,否则还会出现password has expired异常

(5)11.0.2版本后的用户名重命名配置:

    5.1 执行:  alter system set _enable_rename_user=true scope=spfile;

    5.2 重启数据库服务

    5.3 执行:alter user demo RENAME TO demo_test IDENTIFIED BY demo

scope=spfile>>参数说明:

应该是scope=both和scope=spfile
Oracle 里面有个叫做spfile的东西,就是动态参数文件,里面设置了Oracle 的各种参数。所谓的动态,就是说你可以在不关闭数据库的情况下,更改数据库参数,记录在spfile里面。更改参数的时候,有4种scope选项。scope就是范围
++ scope=spfile 仅仅更改spfile里面的记载,不更改内存,也就是不立即生效,而是等下次数据库启动生效。有一些参数只允许用这种方法更改
++ scope=memory 仅仅更改内存,不改spfile。也就是下次启动就失效了
++ scope=both 内存和spfile都更改
++ 不指定scope参数,等同于scope=both.

(6)创建表空间

 create tablespace test_data
         logging
         datafile 'D:\oracle10g\product\10.2.0\oradata\orcl\test_data.dbf'
         size 32m
         autoextend on
         next 32m maxsize unlimited
         extent management local;

(7)查询用户下的所有表

SELECT * FROM USER_TABLES;  --当前登录用户的表
SELECT * FROM ALL_TABLES WHERE OWNER='testuser'  -- 其他用户的表

(8)创建、删除同义词

 create public synonym table_name for user.table_name;

   drop public synonym table_name;

(9)表权限设置给另一用户

select 'GRANT SELECT ON '||table_name||' to b;'  from user_tables

(10)删除非空表空间

drop tablespace  yourtablespacename including contents and datafiles

(11) 表空间授权给用户

grant unlimited tablespace to test_tablespace_name;

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 29
博文 250
码字总数 22164
作品 1
×
cccyb
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: