ORA-3214 When Creating a Tablespace [ID 153869.1]

SQL> Create temporary tablespace temp02 tempfile  '/oracle/oradata/tjcshow/temp02.dbf' size 1M;
Create temporary tablespace temp02 tempfile  '/oracle/oradata/tjcshow/temp02.dbf' size 1M
*
ERROR at line 1:
ORA-03214: File Size specified is smaller than minimum required

***Checked for relevance on 10-Dec-2012***


Problem Description
-------------------

You are using a database which is based on 8k database blocks.

You create a tablespace and get the following error message:

   SQL> create tablespace verysmall 
     2  datafile '/ora/ora901/oradata/V901/small01.dbf'
     3  size 50k;
   create tablespace verysmall datafile '/ora/ora901/oradata/V901/small01.dbf' 
   *
   ERROR at line 1:
   ORA-03214: File Size specified is smaller than minimum required


Solution Description
--------------------
1. Either increase the size for the datafile :
 
   SQL> create tablespace verysmall
     2  datafile '/ora/ora901/oradata/V901/small01.dbf'
     3  size 88k;

   Tablespace created.

-- OR --

2. Specify the size of the extent allocation:

   SQL> create tablespace verysmall
     2  datafile '/ora/ora901/oradata/V901/small01.dbf'
     3  size 34k
     4  uniform size 10k;

   Tablespace created.


NOTE:
=====
1. In the first example, the ORA-03214 gets raised for a tablespace size of of 80 kB or smaller.
   Large values below 88 kB are rounded upward.

2. In example 2, you may also get an ORA-03249 when using ASSM.
   ASSM was first introduced with Oracle 9i. 
   Starting with 10g Release 2, ASSM will be enabled by default when you create a new tablespace.

   SQL> create tablespace verysmall datafile size 32k uniform size 10k;
   create tablespace verysmall datafile size 32k uniform size 10k
   *
   ERROR at line 1:
   ORA-03249: Uniform size for auto segment space managed tablespace should have
   atleast 5 blocks

   Note that in the example, the datafile for the tablspace is not specified as the storage was on ASM.


Explanation
-----------
1. In 9i, when you create a tablespace, it is by default created as a Locally 
   Managed Tablespace with a minimum extent size of 64K, if the local management
   is system managed.

   Therefore, you must allocate size datafiles to 64 Kbytes + 3 blocks for the bitmap blocks.
   In solution 1, the datafile size could not be set less than 64K + (3*8k)= 88k

2. If you supply the UNIFORM parameter, size the datafiles to 3 blocks + one extent size
   minimum. It offers the means to allocate the first extent without problem.
 
   Therefore in solution 2, the datafile cannot be set less than 
   10K + (3*8k) = 34K

   SQL> create tablespace verysmall
     2  datafile '/ora/ora901/oradata/V901/small01.dbf'
     3  size 32k
     4  uniform size 10K;
   create tablespace verysmall
   *
   ERROR at line 1:
   ORA-03214: File Size specified is smaller than minimum required

Oracle数据泵导入(`impdp`)操作中,如果遇到与表空间相关的错误,例如 `ORA-39083`、`ORA-01119` 和 `ORA-27040`,这通常意味着目标数据库中缺少必要的表空间或文件路径配置不正确。以下是详细的解决方法和注意事项。 ### 问题分析 #### 错误描述 - **ORA-39083**: 表示数据泵在尝试创建某个对象时失败。 - **ORA-01119**: 表示无法创建数据库文件(如数据文件)。 - **ORA-27040**: 表示文件创建失败,通常是由于指定的文件路径不存在或权限不足。 这些问题的根本原因可能是: 1. 导出的数据包含特定的表空间定义。 2. 目标系统上未预先创建对应的表空间。 3. 数据文件路径在目标系统上不可用或没有写入权限。 ### 解决方案 #### 方法一:手动创建表空间 在执行 `impdp` 命令之前,确保所有需要的表空间已经在目标数据库中存在。可以通过以下步骤手动创建表空间: ```sql CREATE TABLESPACE example_tbs DATAFILE '/u01/oradata/example_tbs.dbf' SIZE 100M AUTOEXTEND ON; ``` 其中 `/u01/oradata/` 是一个有效的目录路径,且 Oracle 用户对该目录具有读写权限。 #### 方法二:使用 `REMAP_TABLESPACE` 参数映射表空间 如果目标数据库中不想使用源数据库中的表空间名称,可以使用 `REMAP_TABLESPACE` 参数将源表空间映射到目标表空间。例如: ```bash impdp username/password@db_name directory=dump_dir dumpfile=example.dmp remap_tablespace=source_tbs:target_tbs ``` 此命令会将源导出文件中涉及 `source_tbs` 的内容映射到目标数据库的 `target_tbs` 中。 #### 方法三:检查并修复文件路径 确保目标系统的文件路径存在,并且 Oracle 用户有权限访问该路径。可以通过以下命令检查路径是否存在: ```bash ls -ld /u01/oradata/ ``` 如果没有权限,请修改目录权限: ```bash chown oracle:oinstall /u01/oradata/ chmod 750 /u01/oradata/ ``` #### 方法四:调整初始化参数 在某些情况下,可能需要调整数据库的初始化参数,例如 `DB_CREATE_FILE_DEST`,以确保数据文件能够自动创建在正确的路径下: ```sql ALTER SYSTEM SET DB_CREATE_FILE_DEST='/u01/oradata/'; ``` ### 验证与测试 完成上述配置后,重新运行 `impdp` 命令以验证是否解决了问题: ```bash impdp username/password@db_name directory=dump_dir dumpfile=example.dmp ``` 观察日志输出,确认是否仍然出现错误。如果有新的错误信息,可以根据提示进一步排查。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值