Oracle创建表空间和用户并还原数据库备份

本文详细介绍了如何在Oracle数据库中创建表空间、临时表空间以及用户,并关联表空间。接着,展示了如何使用imp和impdp命令进行数据库的导入与导出,强调了不同导出方式需对应正确的导入方式。同时,提到了在导入过程中可能出现的错误及原因,如字符集不匹配、表空间不一致和用户映射问题。

1.先创建表空间

CREATE TABLESPACE tableSpaceName --创建的表空间名称
LOGGING
DATAFILE 'D:\app\Administrator\oradata\orcl\TestData.DBF' --生成的数据库物理文件路径
SIZE 50M   
AUTOEXTEND ON    
NEXT 50M MAXSIZE 20480M   

2.创建临时表空间

CREATE TEMPORARY TABLESPACE tempTableSpaceName --创建的临时表空间名称
TEMPFILE 'D:\app\Administrator\oradata\orcl\TempTestData.DBF'  --数据库物理文件路径
SIZE 50M   
AUTOEXTEND ON   
NEXT 50M MAXSIZE 20480M   

3.创建用户并关联表空间

CREATE USER TestUser01 IDENTIFIED BY PassWord01 --创建用户并设置密码
DEFAULT TABLESPACE tableSpaceName --默认表空间
TEMPORARY TABLESPACE tempTableSpaceName --临时表空间

4.给用户授权

grant connect,resource,dba to TestUser01

5.还原数据库

如果dmp文件是用exp命令导出的,那就需要用imp命令导入,如下所示:

imp TestUser01/PassWord01@数据库网络服务名 file=dmp文件全路径 log=日志文件全路径

@符号后既可以写网络服务名,也可以写数据库服务器IP:1521/ORCL。

如果dmp文件是用expdp命令导出的,那就需要先创建逻辑目录,再用impdp命令导入,如下所示:

先创建逻辑目录,该命令不会创建真正的目录,逻辑目对对应的实际物理路径必须是已经存在的。
create directory testDirectory01 as 'd:\dumpDir';
查看目录,如下所示:
select * from dba_directories;

使用impdp命令还原数据库

impdp TestUser01/PassWord01@数据库服务器IP:1521/ORCL directory=testDirectory01 dumpfile=test01.dmp remap_schema=fromuser:TestUser01 remap_tablespace=fromtp01:tableSpaceName logfile=test01.log

@符号后既可以写网络服务名,也可以写数据库服务器IP:1521/ORCL。

impdp命令参数说明:
dumpfile:需要导入的dmp文件名称;
directory:dmp文件所在的目录文件夹;
REMAP_SCHEMA:该选项用于将源方案的所有对象装载到目标方案中(即指定源数据库用户名和目标数据库用户名的对应关系,如果源用户名与目标用户名不一致,则需要使用该参数);
REMAP_TABLESPACE:将源表空间的所有对象导入到目标表空间中(即指定源表空间和目标表空间的对应关系,如果源表空间和目标表空间不一致,则需要使用该参数)。

如果用imp命令导入expdp方式导出的dmp文件,则会报错IMP-00038,如下图所示:

6.导入时报错及原因分析

报错:ORA-02374、ORA-12899、ORA-02372;

报错原因:导入时如果源数据库字符集与目标数据库字符集不一致。

报错:IMP-00038;

报错原因:可能是使用imp命令导入expdp方式导出的dmp文件导致报错,exp方式导出的数据库必须用imp方式还原,expdp方式导出的数据库必须用impdp方式还原。

报错:ORA-00959;

报错原因:目标表空间与源表空间不一致,导入时又没有指定源表空间与目标表空间的映射关系。

报错:ORA-31625;

报错原因:目标用户与源用户不一致,导入时又没有指定源用户与目标用户的映射关系。

 

Oracle创建表空间的步骤如下: 1. 首先,确定要创建表空间的名称位置。可以选择创建数据文件或者使用已有的数据文件作为表空间的存储位置。 2. 使用CREATE TABLESPACE语句创建表空间。例如,使用以下语句创建一个名为user_data的表空间: CREATE TABLESPACE user_data DATAFILE 'D:\oracle\oradata\Oracle9i\user_data.dbf' SIZE 100M AUTOEXTEND ON NEXT 50M MAXSIZE 20480M EXTENT MANAGEMENT LOCAL; 在上述语句中,'D:\oracle\oradata\Oracle9i\user_data.dbf'是数据文件的路径,SIZE指定了初始大小为100M,AUTOEXTEND ON表示自动扩展,NEXT 50M表示每次扩展的大小为50M,MAXSIZE 20480M表示表空间的最大大小为20480M,EXTENT MANAGEMENT LOCAL表示使用本地管理的扩展。 3. 另外,如果需要创建临时表空间,可以使用CREATE TEMPORARY TABLESPACE语句。例如,使用以下语句创建一个名为user_temp的临时表空间: CREATE TEMPORARY TABLESPACE user_temp TEMPFILE 'D:\oracle\oradata\Oracle9i\user_temp.dbf' SIZE 50M AUTOEXTEND ON NEXT 50M MAXSIZE 20480M EXTENT MANAGEMENT LOCAL; 在上述语句中,'D:\oracle\oradata\Oracle9i\user_temp.dbf'是临时表空间的数据文件路径。 需要注意的是,创建表空间需要具备适当的权限。这些权限包括CREATE TABLESPACEALTER TABLESPACE等。另外,还需要注意表空间的大小自动扩展的设置,以满足数据库的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [oracle创建表空间](https://blog.csdn.net/weixin_45213302/article/details/113238654)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值