"oracle 常用操作 创建表空间 一般在创建用户和相关表时都会先创建表空间,然后再创建用户,并指定该用户操作的表空间为新创建的表空间,防止不同的用户之间操作表导致混乱的问题,表空间与表空间之间的表可以重名。下面是具体实现:(需要先登录管理员账号在 sqlplus 工具命令行下操作) DROP TABLESPACE t .."

oracle 常用操作

本贴最后更新于 457 天前,其中的信息可能已经事过境迁

oracle 常用操作

  1. 创建表空间 一般在创建用户和相关表时都会先创建表空间,然后再创建用户,并指定该用户操作的表空间为新创建的表空间,防止不同的用户之间操作表导致混乱的问题,表空间与表空间之间的表可以重名。下面是具体实现:(需要先登录管理员账号在 sqlplus 工具命令行下操作)

    DROP TABLESPACE test INCLUDING CONTENTS AND DATAFILES;-- 删除 test 表空间
    
    create tablespace TEST -- 创建表空间 TEST 
    datafile 'D:\oracle\oradata\orcl\TEST.dbf' size 1024M -- 指定具体的物理文件路径为 D:\oracle\oradata\orcl 下,物理文件为 TEST.dbf (与表空间名尽量保持一致,这样不需要额外的说明文档就知道对应关系),size 参数为初始时指定的文件大小
    autoextend on next 10M maxsize unlimited   -- 每次扩展 10M,无限制扩展
    
  2. 创建用户及指定表空间

    drop user test cascade; -- 删除 test 用户
    create user test -- 创建 test 用户 
    identified by test -- 密码为 test
    default tablespace TEST; -- 默认操作表空间为 TEST
    alter user test quota unlimited on TEST; 修改用户操作表空间到TEST表空间
    
  3. 授权

    grant connect,resource to test;
    grant dba to test;
    grant create any procedure to test;
    grant create any procedure to test;
    grant create any trigger to test;
    grant create any view to test;
    grant create any index to test;
    grant create any SYNONYM to test;
    GRANT CTXAPP TO test;
    GRANT EXECUTE ON CTXSYS.CTX_CLS TO test;
    GRANT EXECUTE ON CTXSYS.CTX_DDL TO test;
    GRANT EXECUTE ON CTXSYS.CTX_DOC TO test;
    GRANT EXECUTE ON CTXSYS.CTX_OUTPUT TO test;
    GRANT EXECUTE ON CTXSYS.CTX_QUERY TO test;
    GRANT EXECUTE ON CTXSYS.CTX_REPORT TO test;
    GRANT EXECUTE ON CTXSYS.CTX_THES TO test;
    GRANT EXECUTE ON CTXSYS.CTX_ULEXER TO test;
    
  4. 操作目录 oracle 中的目录用来对应实际的物理路径目录,对应关系存储在表dba_directories,可使用语句select * from dba_directories;查询当前已经存在的目录记录

    create directory dataDir AS 'E:\dataDir'; -- 创建 dataDir 目录对应实际物理路径为 E:\dataDir(应先在 e 盘下创建 dataDir 目录)
    Grant read,write on directory dataDir to test; -- 授权 test 用户对 dataDir 目录有读写权限
    
  5. 导入导出 一般都导入导出 dmp 文件用来备份迁移数据,oracle 本身提供两个导出工具:exp 导出对应 imp 导入(数据量较少时使用)、expdp 导出对应 impdp 导入,前者不需要使用目录,后者需要使用目录(导出导入文件存放位置)

    1. exp 导出、imp 导入 更多参考

      # 导出命令 exp
      exp 用户名/用户密码@服务名 file=保存路径.dmp log=日志名.log owner=用户名;
      # 导出 test 用户的命令如下:
      exp test/test@orcl file=e:/test_exp20180218.dmp log=e:/test_exp_log20180218.log owner=test;
      
      # 导入命令 imp
      imp 用户名/密码@实例名 file=路径.dmp  fromuser=导出用户   touser=导入用户   log=日志路径
      --假如需要忽略已存在表添加ignore=y
      
      # 导入 test 
       imp test/test@orcl file=e:/test_exp20180218.dmp log=e:/test_imp_log20180218.log full=y
      --当导出和导入的用户不一致时需要使用 fromuser=导出用户   touser=导入用户
      
    2. expdp 导出、impdp 导入 更多参考

    # 导出命令 expdp
    expdp 用户名/密码@实例名 directory=目录名 DUMPFILE=文件名.dmp schemas=用户名 logfile=日志名.log version=10.2.0.1.0(导入数据版本号,相同版本不需要此参数,主要是为了解决高版本导出向低版本导入的问题)
    #  导出 test 用户的命令如下:
    expdp test/test@orcl directory=dataDir DUMPFILE=test_expdp20180218.dmp schemas=test logfile=test_expdp_log20180218.log
    
    # 导入命令 impdp
    impdp 用户名/密码 directory=目录名 dumpfile=dmp文件名.DMP nologfile=y(不需要日志) tables=zlhis.dept remap_schema=导出用户:导入用户(重新映射用户,相同可省略,多个逗号分隔) remap_tablespace=导出表空间:导入表空间,导出表空间2:导入表空间(重新映射表空间,相同可省略,多个逗号分隔) table_exists_action=truncate(表已经存在的动作 有效关键字: (SKIP), APPEND, REPLACE 	和 TRUNCATE) exclude=object_grant(跳过对象授权)
    
    # 导入 test
    impdp test/test directory=dataDir dumpfile=test_expdp20180218.dmp table_exists_action=replace remap_tablespace=test:test logfile=test_impdp_log20180218.log;
    

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:PipeSoloSymWide 等,欢迎大家加入,贡献开源。

    2259 引用 • 3707 回帖 • 620 关注
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    87 引用 • 109 回帖 • 659 关注
感谢    关注    收藏    赞同    反对    举报    分享
回帖    
请输入回帖内容...