解析oracle 10g示例方案创建过程

1.问题起因:

在oracle 10g版本中,运行dbca,如果选择 一般用途/事务处理/数据仓库选项时 再进一步建库都会提示是否创建示例方案

唯独选择定制数据库时该选项不可用,而且也无法添加该示例方案

2.新的想法

我的库正好是使用定制数据库创建的,没有办法添加示例方案

既然其它的三个选项可以创建示例方案,那么是否可以通过保存生成的数据库脚本进一步研究示例方案建立的过程呢

3.马上动手

于是选择一般用途的数据库,选择示例方案选项并生成脚本

4.找到差异

通过对脚本不断比对,将问题的焦点定位在cloneDBCreation.sql中的一个语句上面

@d:\oracle10\product\10.2.0\db_1\demo\schema\mkplug.sql

&&sysPassword change_on_install change_on_install

change_on_install change_on_install change_on_install

change_on_install

d:\oracle10\product\10.2.0\db_1\assistants\dbca\templates\example.dmp

d:\oracle10\product\10.2.0\db_1\assistants\dbca\templates\example01.dfb

E:\test10\oradataexample01.dbf D:\oracle\admin\test10\admin\test10\scripts\

"'SYS/&&sysPassword as SYSDBA'";

5.大致过程

通过对该脚本的研究发现创建示例方案大概由一下几个步骤完成

5.1创建相关的用户,目录

CREATE USER hr IDENTIFIED BY &&password_hr ;

CREATE USER oe IDENTIFIED BY &&password_oe ;

CREATE USER ix IDENTIFIED BY &&password_ix ;

CREATE USER sh IDENTIFIED BY &&password_sh ;

CREATE USER pm IDENTIFIED BY &&password_pm ;

CREATE USER bi IDENTIFIED BY &&password_bi ;

@?/demo/schema/mk_dir

5.2赋予相关权限

GRANT CREATE SESSION   TO hr;

GRANT ALTER SESSION   TO hr;

GRANT CREATE DATABASE LINK  TO hr;

GRANT CREATE SEQUENCE   TO hr;

GRANT CREATE SYNONYM   TO hr;

GRANT CREATE VIEW   TO hr;

GRANT RESOURCE     TO hr;

GRANT execute ON sys.dbms_stats  TO hr;

......

5.3从备份中restore示例方案的数据文件

dbms_backup_restore.restoreSetDataFile;

dbms_backup_restore.restoreDataFileTo(data_file_id,'&data_file_name');

dbms_backup_restore.restoreBackupPiece('&data_file_backup', done);

5.4导入example表空间元数据

host imp "'sys/&&password_sys AS SYSDBA'" transport_tablespace=y

file=&imp_file log=&imp_logfile datafiles='&datafile'

tablespaces=EXAMPLE tts_owners=hr,oe,pm,ix,sh

ALTER TABLESPACE example READ WRITE;

5.5创建序列,视图,授予对象权限等后继操作

CREATE SEQUENCE locations_seq

START WITH     3300

INCREMENT BY   100

MAXVALUE       9900

NOCACHE

NOCYCLE;

CREATE OR REPLACE VIEW emp_details_view

(employee_id,

job_id,

manager_id,

department_id,

......

GRANT REFERENCES, SELECT ON employees  TO oe;

GRANT REFERENCES, SELECT ON countries  TO oe;

GRANT REFERENCES, SELECT ON locations  TO oe;

GRANT SELECT ON jobs    TO oe;

GRANT SELECT ON job_history   TO oe;

GRANT SELECT ON departments   TO oe;

......

6.注意事项

6.1 example表空间不能预先建立

因为5.3步要做example数据文件的restore

5.4步要导入example表空间的元数据

如果已经存在这个表空间 那么脚本执行时会报错

6.2 必须先将数据库字符集置为US7ASCII

由于oracle 10g提供的example表空间的元数据是从字符集为US7ASCII的库中导出来的

如果数据库当前的字符集不为US7ASCII,那么导入元数据时会报错

Export file created by EXPORT:V10.02.01 via conventional path

About to import transportable tablespace(s) metadata...

import done in US7ASCII character set and AL16UTF16 NCHAR character set

import server uses ZHS16GBK character set (possible charset conversion)

. importing SYS's objects into SYS

. importing SYS's objects into SYS

IMP-00017: following statement failed with ORACLE error 29345:

"BEGIN   sys.dbms_plugts.beginImport ('10.2.0.1.0',1,'2000',7,'Microsoft Win"

"dows IA (32-bit)',51896,43851,1,1,1,0); END;"

IMP-00003: ORACLE error 29345 encountered

ORA-29345: cannot plug a tablespace into a database using an incompatible character set

ORA-06512: at "SYS.DBMS_PLUGTS", line 2386

ORA-06512: at "SYS.DBMS_PLUGTS", line 1946

ORA-06512: at line 1

IMP-00000: Import terminated unsuccessfully

修改字符集的步骤如下(当然这步是有风险的)

而且在example表空间创建好之后还要修改回原来的字符集

jcq0> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

jcq0> startup mount

ORACLE 例程已经启动。

Total System Global Area  289406976 bytes

Fixed Size                  1248600 bytes

Variable Size             121635496 bytes

Database Buffers          163577856 bytes

Redo Buffers                2945024 bytes

数据库装载完毕。

jcq0> ALTER SYSTEM ENABLE RESTRICTED SESSION;

系统已更改。

jcq0> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

系统已更改。

jcq0> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

系统已更改。

jcq0> alter database open;

数据库已更改。

jcq0> alter database character set INTERNAL_USE US7ASCII;

数据库已更改。

jcq0> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

jcq0> startup

ORACLE 例程已经启动。

Total System Global Area  289406976 bytes

Fixed Size                  1248600 bytes

Variable Size             121635496 bytes

Database Buffers          163577856 bytes

Redo Buffers                2945024 bytes

数据库装载完毕。

数据库已经打开。

7.手动创建

你需要做什么?

7.1确认没有example表空间和对应的数据文件

7.2将数据库字符集强制转换为US7ASCII

7.3执行脚本

@d:\oracle10\product\10.2.0\db_1\demo\schema\mkplug.sql test10 test10 test10 test10 test10 test10 test10 d:\oracle10\product\10.2.0\db_1\assistants\dbca\templates\example.dmp d:\oracle10\product\10.2.0\db_1\assistants\dbca\templates\example01.dfb D:\oracle10\oradata\orcl10\example01.dbf D:\oracle\admin\orcl10\scripts\ "'SYS/&&sysPassword as SYSDBA'";

各参数的意义分别为

SYS HR OE PM IX SH BI 密码

元数据位置及名称 备份片的位置及名称 restore的数据文件的名称和位置 日志输出的位置

7.4将数据库修改回原来的字符集

8.简单总结

oracle 10g提供了跨平台的表空间透明传输特性,而且它自己在安装过程中也充分利用了这一特性,

为我们做了一个示范,同时也为我们跨平台迁移数据提供了另一种方式.

oracle10创建实例表空间,解析oracle 10g示例方案创建过程相关推荐

  1. oracle11 删除表空间,oracle11g启动停止服务,修改字符集,导入导出,创建删除表空间,卸载oracle等...

    oracle11g启动停止服务,修改字符集,导入导出,创建删除表空间,卸载oracle等 1. [启动停止服务] //启动停止监听  www.2cto.com lsnrctl start; lsnrc ...

  2. oracle创建用户表空间6,Oracle创建表空间,添加用户及授权

    工具/原料 PLSQL 方法/步骤 1.在PLSQL里,用system/css(orcl系统用户)登陆,登陆的时候普通用户登陆选择normal就可以了 2.Oracle用户新增 执行语句 create ...

  3. oracle,通过plsql创建用户表空间和所属用户示例

    1)创建表空间: 先以oracle数据库管理员的身份登录plsql,在plsql中新建sql命令框,在其中输入如下语句,执行完毕即可建立一个表空间. 创建用户表空间 建立表空间(一般建N个存数据的表空 ...

  4. linux pdb创建表空间,ORACLE12C PDB创建默认表空间和用户语句(示例代码)

    第一次接触到12C CDB和PDB数据库,且客户提供的是ORACLE一体机,只有访问权,费劲周折,今记录12C创建默认路径表空间语句和用户 --创建默认表空间: create tablespace t ...

  5. oracle添加索引指定表空间,Oracle 创建索引表空间语法-oracle

    Oracle 的索引可分为5种,它们包括唯一索引.组合索引.反向键索引.位图索引和基于函数的索引. 1.创建索引的标准语法 以下为引用内容:  CREATE INDEX 索引名 ON 表名 (列名)T ...

  6. 补充笔记(Linux常用命令+sql表空间,索引,分区,创建用户)

    Linux操作笔记 cd +目录 切换目录 ll看详情 pwd看路径 mkdir 创建文件 -p 级联 rmdir [-p] dirName/子目录   删除空目录 du 查看每个文件占用情况 df ...

  7. oracle创建索引占用表空间吗,oracle创建索引表空间

    或者 drop tablespace 表空间名称 including contents;(表空间下有数据时候用) temporary tablespace 是 oracle 里临时表空间,临时表空间主 ...

  8. oracle创建表空间blocksize,oracle表空间大小的限制和DB_BLOCK_SIZE的概念

    而Oracle默认分配的为8K,也就是对应于32768M左右的空间大小,如果想继续增大表空间的话,只需要通过alter tablespace name add datafile 'path/file_ ...

  9. oracle 创建表空间 pcincrease,oracle建表空间 各种语句

    oracle建表空间 各种语句 在创建用户之前,先要创建表空间: 其格式为:格式: create tablespace 表间名 datafile '数据文件名' size 表空间大小; 如: SQL& ...

最新文章

  1. @Value竟然能玩出这么多花样
  2. matlab 2014 破解使用
  3. php需要什么技能,成为一个好的PHP工程师需要掌握什么技能
  4. C语言实现阿姆斯特朗数armstrong number算法(附完整源码)
  5. 从零开始数据科学与机器学习算法-简单感知器-05
  6. Facebook发布基站开源平台OpenCellular
  7. linux文件查找-find和locate
  8. python入门经典100例-【python】编程语言入门经典100例--3
  9. [mstsc]解决win8 win10 平板无法被mstsc连接的问题
  10. Ordinal Regression 年龄估计(CVPR2016)
  11. 科学计算机中的dms在哪,计算机视觉方向简介 | 驾驶员监控DMS
  12. [转载]ssget 用法详解 by yxp
  13. 中美大学生阅读书单大公开,哈佛和北大差异这么大!
  14. poi-tl填充动态word表格数据
  15. word论文排版和写作01:样式、自动列表、图片、表格、公式、脚注、目录、页眉页脚及各种交叉引用
  16. 用C语言读取.txt文本,并保存在二维数组中
  17. 2022.08.15 第三组 高小涵
  18. Python函数习题
  19. AVR mega48 ISP下载及熔丝位修正
  20. 基于 Apache Flink 和规则引擎的实时风控解决方案 ​

热门文章

  1. Quartus II 18.0 创建 dcfifo IP 核仿真出现问题 Port 'eccstatus' not found 记录和解决方案
  2. BCC – 用于Linux性能监视,网络和更多的动态跟踪工具
  3. 相机存储卡数据恢复怎么操作?数据恢复的图文教程来啦!
  4. Excel如何快速对比两个表格不同项
  5. 青龙面板+多个青龙面板+拉库合集+autMan+go-cqhttp+短信登录(Rabbit)(兔子)+超级详细
  6. 迷人的神经网络——机器学习笔记1
  7. H G W S哪一个不是状态函数_G.Strang的微分方程和线性代数(2.4)受迫振荡和指数响应...
  8. 怎么安装Anaconda3
  9. 网上商城购物系统(2)
  10. iphone5s 黑苹果死机 刷机记录