关于用户和表空间的问题,我很困惑

永爱果果 2017-07-21 07:07:20
被审计单位导出oralce数据库给我的导出命令是这样的:
expdb sys/5221802 directory=dump dumpfile=file_%u.dmp SCHEMAS=sdlysi pararller=4 PARFILE =para
然后管理人员告诉我需要建立sdlysi用户和USER_SDLYSI表空间
看来USER_SDLYSI表空间包含sdlysi及该用户下的表,于是我按照他的说法建立了,然后使用impdb导入到我的电脑中
我在我的电脑中建立了sdlysi用户和USER_SDLYSI表空间,但是未给sdlysi用户赋予表空间USER_SDLYSI,结果我在导入的时候(用sdlysi用户登录导入的)发现USER_SDLYSI荣利朗不断增加,说明数据导入到这个表空间了,但是我没有赋予sdlysi用户这个表空间啊,sdlysi的默认表空间不应该是user表空间吗,应该数据还原到user表空间啊,我很困惑啊。
有时候搞不清楚用户名和表空间的关系,为什么导入oracle的备份要建立源数据库一模一样的表空间名和用户名啊?
...全文
292 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
永爱果果 2017-07-25
  • 打赏
  • 举报
回复
引用 11 楼 wmxcn2000 的回复:
你把完整的expdp 和 impdp 都贴一下。 另外,两个服务器的oracle 的版本是不是一样的?
貌似解决了,把那个remap_tablespace后的那个单引号去掉就行了
永爱果果 2017-07-24
  • 打赏
  • 举报
回复
引用 11 楼 wmxcn2000 的回复:
你把完整的expdp 和 impdp 都贴一下。 另外,两个服务器的oracle 的版本是不是一样的?
备份 expdp.exe 'sys/5221802 as sysdba' directory=sbsj_bak dumpfile=expdb_sdlysi_%u.dmp schemas=sdlysi parallel=4 logfile=expdbother.log 还原: impdp 'sys/522802 as sysdba' directory=dump dumpfile=expdb_sdlysi_%u.dmp remap_schema=sdlysi:sdlysbsj remap_tablespace='(INDX_AC43:LYYLBX,USER_SDLYSI:LYYLBX,USER_YLDY:LYYLBX,INDX_YLDY:LYYLBX,INDX_SDLYSI:LYYLBX)' table_exists_action=replace 两个服务器的版本一致,如果不用remap_schema和renmap_tablespace能够导入
卖水果的net 2017-07-24
  • 打赏
  • 举报
回复
你把完整的expdp 和 impdp 都贴一下。 另外,两个服务器的oracle 的版本是不是一样的?
永爱果果 2017-07-24
  • 打赏
  • 举报
回复
引用 9 楼 wmxcn2000 的回复:
expdb sys/5221802 directory=dump dumpfile=file_%u.dmp SCHEMAS=sdlysi pararller=4 PARFILE =para


impdp 'sys/522802 as sysdba' directory=dump dumpfile=expdb_sdlysi_%u.dmp remap_schema=sylysi:sdlysbsj

改过后,导入出现下列情况,什么意思
卖水果的net 2017-07-24
  • 打赏
  • 举报
回复
expdb sys/5221802 directory=dump dumpfile=file_%u.dmp SCHEMAS=sdlysi pararller=4 PARFILE =para impdp 'sys/522802 as sysdba' directory=dump dumpfile=expdb_sdlysi_%u.dmp remap_schema=sylysi:sdlysbsj
永爱果果 2017-07-24
  • 打赏
  • 举报
回复
引用 6 楼 wmxcn2000 的回复:
是把 sdyi 这个用户下的对象都导出来了?不管这些对象在哪里存放着。 也就是说,这个用户的对象(表、lob等)如果分散在10个表空间,也会都导出来。导入时使用 remap_tablespace 参数可以指定新的表空间。
我用如下命令导入: impdp 'sys/522802 as sysdba' directory=dump dumpfile=expdb_sdlysi_%u.dmp remap_schema=sylysi:sdlysbsj remap_tablespace='(INDX_AC43:LYYLBX,USER_SDLYSI:LYYLBX,USER_YLDY:LYYLBX,INDX_YLDY:LYYLBX,INDX_SDLYSI:LYYLBX)' table_exists_action=replace 结果提示:没有用户sdlysi,以及一大堆错误 我又建立用户sdlysi和表空间INDX_AC43, USER_SDLYSI, USER_YLDY,INDX_YLDY,INDX_SDLYSI 然后能导入了,我看了下物理文件发现还是USER_SDLYSI表空间在增长,而LYYLBX表空间的物理文件没有增长,说明USER_SDLYSI表空间表空间的数据没有转移到LYYLBX表空间,是不是要先吧文件还原到USER_SDLYSI表空间表空间,然后再从USER_SDLYSI表空间导入到LYYLBX表空间啊,这样是不是很费时间啊
永爱果果 2017-07-23
  • 打赏
  • 举报
回复
引用 6 楼 wmxcn2000 的回复:
是把 sdyi 这个用户下的对象都导出来了?不管这些对象在哪里存放着。 也就是说,这个用户的对象(表、lob等)如果分散在10个表空间,也会都导出来。导入时使用 remap_tablespace 参数可以指定新的表空间。
多谢,学习了,我以为只能建立一个源数据库一模一样的表空间和用户名呢,原来可以重新指定啊 那么看来被审计单位再给我提供后台数据备份的时候,我还得要他提供用户名和表空间啊,这个感觉比sqlserver麻烦不少
卖水果的net 2017-07-23
  • 打赏
  • 举报
回复
是把 sdyi 这个用户下的对象都导出来了?不管这些对象在哪里存放着。 也就是说,这个用户的对象(表、lob等)如果分散在10个表空间,也会都导出来。导入时使用 remap_tablespace 参数可以指定新的表空间。
永爱果果 2017-07-23
  • 打赏
  • 举报
回复
引用 3 楼 wmxcn2000 的回复:
可以不一样的。有两个参数 remap_tablespace remap_schema 楼主先百度一下。
另外还想问一下,被审计单位使用这个命令: expdb sys/5221802 directory=dump dumpfile=file_%u.dmp SCHEMAS=sdlysi pararller=4 PARFILE =para 备份的文件是将sdlysi用户所在的表空间都备份了吗
永爱果果 2017-07-23
  • 打赏
  • 举报
回复
引用 3 楼 wmxcn2000 的回复:
可以不一样的。有两个参数 remap_tablespace remap_schema 楼主先百度一下。
哦,我百度了一下,也就是说我可以把备份的数据导入到我所创建的表空间和用户名中去是不
卖水果的net 2017-07-22
  • 打赏
  • 举报
回复
可以不一样的。有两个参数 remap_tablespace remap_schema 楼主先百度一下。
永爱果果 2017-07-21
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
说一下你的 impdp 命令是怎么写的; 一看你的命令行,自然就对你的疑问做出相应的解释 ;
impdb sdlysi/5221802 directory=dump dumpfile=file_%u.dmp pararller=4
卖水果的net 2017-07-21
  • 打赏
  • 举报
回复
说一下你的 impdp 命令是怎么写的; 一看你的命令行,自然就对你的疑问做出相应的解释 ;

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧