
1.创建实例启动用的参数文件。在程序默认的参数文件里修改即可:重命名规则 initSID.ora
/u01/oracle/product/11.2.0/db_1/dbs/ 下,目录尽量使用绝对路径,采用ORACLE_BASE等环境变量有可能报错。
例 initcrm.ora
db_name='crm'--修改
#memory_target=500m --注释掉
sga_target=200m --添加
pga_aggregate_target=60m--添加
processes = 150
audit_file_dest='/u01/oracle/admin/crm/adump' --建立目录
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/u01/oracle/flash_recovery_area' --建立目录
db_recovery_file_dest_size=2G
diagnostic_dest='/u01/oracle'---修改
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
2.创建相应目录:
mkdir -p /u01/oracle/admin/ora11g/adump
mkdir -p /u01/oracle/admin/ora11g/dpdump
mkdir -p /u01/oracle/flash_recovery_area
3.创建密码文件:命名规则 orapwSID,目录依旧是 /u01/oracle/product/11.2.0/db_1/dbs/
Linux下orapw+实例名
Windows下pwd+实例名
$ orapwd file=orapwora11g password=oracle
4.创建数据库实例
设置环境变量 export ORACLE_SID=crm
执行以下命令
sqlplus /nolog
conn / as sysdba
注意:本处可能报错需要可能的原因: a)glibc-devel-2.5-58.el5_6.4、libaio-0.3.106-5包是否已安装,命令分别为rpm -q glibc-devel、rpm -q libaio
b)oracle目录权限不足或属组不对,chmod 6751 oracle 授权、chown -R oracle.oinstall /u01/oracle 修改属组
执行建库脚本:
startup nomount pfile="/u01/oracle/product/11.2.0.1/db1/dbs/initcrm.ora"
CREATE DATABASE "crm"
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE '/u01/oracle/oradata/system01.dbf' SIZE 1024M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/u01/oracle/oradata/sysaux01.dbf' SIZE 500M REUSE
SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/u01/oracle/oradata/temp01.dbf' SIZE 20M REUSE
SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE '/u01/oracle/oradata/undo01.dbf' SIZE 300M REUSE
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('/u01/oracle/oradata/log01.dbf') SIZE 50M,
GROUP 2 ('/u01/oracle/oradata/log02.dbf') SIZE 50M,
GROUP 3 ('/u01/oracle/oradata/log03.dbf') SIZE 50M
创建USERS表空间
CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE '/u01/app/oradata/user01.dbf' SIZE 1000M REUSE EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
ALTER DATABASE DEFAULT TABLESPACE "USERS"
------------------------------------------
SQL>create spfile from pfile
File created.
-----------------------------------------
sqlplus / as sysdba
SQL>show user
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/catalog.sql
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/catblock.sql
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/catproc.sql
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/catoctk.sql
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/owminst.plb
使用system用户编译
@/u01/oracle/product/11.2.0.1/db1/sqlplus/admin/pupbld.sql
@/u01/oracle/product/11.2.0.1/db1/sqlplus/admin/help/hlpbld.sql helpus.sql
使用sys用户编译
@/u01/oracle/product/11.2.0.1/db1/javavm/install/initjvm.sql
@/u01/oracle/product/11.2.0.1/db1/xdk/admin/initxml.sql
@/u01/oracle/product/11.2.0.1/db1/xdk/admin/xmlja.sql
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/catjava.sql
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/catexf.sql
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/catqm.sql change_on_install SYSAUX TEMP YES
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/catxdbj.sql
@/u01/oracle/product/11.2.0.1/db1/rdbms/admin/catrul.sql
spool /oracle/admin/edidb/scripts/ordinst.log append
@/u01/oracle/product/11.2.0.1/db1/ord/admin/ordinst.sql SYSAUX SYSAUX
spool off
spool /u01/oracle/admin/ora11g/scripts/interMedia.log append
@/u01/oracle/product/11.2.0.1/db1/ord/im/admin/iminst.sql
spool off
set echo on
spool /oracle/admin/edidb/scripts/lockAccount.log append
BEGIN
FOR item IN ( SELECT USERNAME FROM DBA_USERS WHERE ACCOUNT_STATUS IN ('OPEN', 'LOCKED', 'EXPIRED') AND USERNAME NOT IN (
'SYS','SYSTEM') )
LOOP
dbms_output.put_line('Locking and Expiring: ' || item.USERNAME)
execute immediate 'alter user ' ||
sys.dbms_assert.enquote_name(
sys.dbms_assert.schema_name(
item.USERNAME),false) || ' password expire account lock'
END LOOP
END
/
spool off
到此,数据库实例建立完毕。
1:创建文件夹2:创建初始化参数文件
3:创建执行建库脚本
4:设置环境变量
5:
创建实例
6:创建口令文件
7:启动数据库nomount状态
8:执行建库脚本
mydb.sql
(mydb.sql放在e盘目录下)
9:运行脚本创建数据字典试图!
oracle数据库的数据是按用户来组织的,所以你说的“现有实例的表、表空间、存储过程等”,实际上应该是某个用户的对象;而你只需要将这个用户的对象导出,然后导入到一个新用户下去,就可以实现你的需求。你这里的“实例”实际上应该是用户的概念,而不是一个oracle实例。做法是:expdp按用户导出数据,然后创建新用户,用impdp导入,导入的时候remap_schema即可。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)