首页 > 数据库 > Oracle > Oracle基础结构之手工建库相关
手工建库可以理解oracle的启动关闭、实例、数据文件等概念,本文略去了dbca图形建库部分,重点演示了Windows和Linux下手工建库的主要步骤和命令
略
2、 手工建库手工建库的步骤:
1. 备份机器上现有的数据库;
2. 产生并编辑initSID.ora参数文件;
3. 验证所有的可能用到SQL文件,确认实例名是正确的;
4. 创建新数据库对应的实例(如果是windows操作系统要使用oradim);
5. 利用sqlplus工具以nomount方式启动实例;
6. 利用create database创建数据库;
7. 关闭数据库;
8. 备份数据库;
2.1 产生并编辑initSID.ora参数文件例:创建实例名为test的参数文件inittest.ora
windows下参数文件放置在$ORACLE_HOME/database/inittest.ora
*NIX下参数文件放置在$ORACLE_HOME/dbs/inittest.ora
*.sga_target=612368384
*.instance_name=test
*.db_name='test'
*.control_files='f:\oracle\product\10.2.0\oradata\test\control01.ctl','f:\oracle\product\10.2.0\oradata\test\control02.ctl','f:\oracle\product\10.2.0\oradata\test\control03.ctl'
*.db_recovery_file_dest='f:\oracle\product\10.2.0/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.background_dump_dest='f:\oracle\product\10.2.0/admin/test/bdump'
*.user_dump_dest='f:\oracle\product\10.2.0/admin/test/udump'
windows下创建实例:
oradim -new ------创建新实例选项
-sid test ------新实例的名称
-syspwd oracle -------指定超级用户的口令(sys)
startmode auto --------指定实例的启动模式
在windows下创建完实例后:1)在系统的服务将自动添加一个服务:OracleServicetest;2)并创建一个口令文件;3)在注册表中:Hkey_local_machine\software\ORACLE\key_OraDblog_home1
Hkey_local_machine\system\ControlSet001\Services
oradim –h 查看命令帮助及格式
例:C:\>oradim -new -sid test -syspwd oracle -startmode auto
实例已创建。
UNIX/Linux下创建实例:
创建初始化参数文件、口令文件后,即可export ORACLE_SID=test,然后startup nomount即可启动实例;
(注意,在oradim之前要设置好ORACLE_HOME否则创建服务的时候可能无法正确创建口令文件,然后导致sys连接的时候报ORA-12560: TNS: 协议适配器错误)
2.2 手动创建数据库|
以nomount方式启动Oracle实例 |
|
创建数据库 |
|
安装数据字典 |
|
安装PL/SQL包以及过程 |
|
安装用户资源集 |
|
配置监听文件LISTENER.ORA |
|
配置OEM |
启动实例
c:\> set ORACLE_SID=test
c:\>sqlplus /nolog
SQL> conn / as sysdba
SQL> startup nomount
(注意参数文件中指定的bdump、udump文件要创建好对应的目录,否则就会报ORA-02778: Name given for the log directory is invalid)
创建数据库
create database test
logfile group 1 'F:\oracle\product\10.2.0\oradata\test\redo01.log' size 4M,
group 2 'F:\oracle\product\10.2.0\oradata\test\redo02.log' size 4M,
group 3 'F:\oracle\product\10.2.0\oradata\test\redo03.log' size 4M
datafile 'F:\oracle\product\10.2.0\oradata\test\system01.dbf' size 300m autoextend on next 10m maxsize unlimited
sysaux datafile 'F:\oracle\product\10.2.0\oradata\test\sysaux01.dbf' size 200m
undo tablespace undotbs1 datafile 'F:\oracle\product\10.2.0\oradata\test\undo01.dbf' size 50m
character set zhs16gbk;
SYS@test> select name,open_mode from v$database;
NAME OPEN_MODE
--------- ----------
TEST READ WRITE
注意:system表空间至少240M、sysaux至少200M;
在创建数据库的过程中,创建了控制文件、数据文件、日志文件,自动创建了system/manager;
如果创建失败,需要重新创建的话,可能需要删除先前创建失败时已经生成的一些文件(如果有),无法删除的话可以关闭数据库及实例,删除后重新启动实例,然后创建数据库;
2.3 安装数据库字典、系统包及过程SYS@test> @F:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catalog.sql ---创建数据字典视图、同义词
SYS@test> @F:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catproc.sql ---创建系统包、过程
2.4安装客户资源集SYS@test> conn system/manager
SYSTEM@test> @F:\oracle\product\10.2.0\db_1\sqlplus\admin\pupbld.sql
这个脚本只能由system用户执行,与后面用户的授权有一定关系,用户资源集中包括dbsmp、sysman等其他用户的信息,包括这些用户登录信息、密码等以及使用资源 的限制等,如果不运行这个脚本,则后面配置dbconsole也无法进行;
2.5 配置监听c:\> lsnrctl stop
c:\>lsnrctl start
客户端连接数据库以验证监听服务
修改tnsname.ora文件
TEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =HAOHAO)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
)
)
2.6创建临时表空间SYSTEM@test> create temporary tablespace temp tempfile 'F:\oracle\product\10.2.0\oradata\test\temp01.dbf' size 20M;
SYSTEM@test> alter database default temporary tablespace temp;
2.7 配置dbconsole配置dbconsole过程中会创建资料库,这期间会需要临时表空间(如用来排序)
C:\>emca -config dbcontrol db -repos create
EMCA 开始于 2013-1-24 20:59:23
EM Configuration Assistant 10.2.0.1.0 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。
输入以下信息:
数据库 SID: test
监听程序端口号: 1521
SYS 用户的口令:
DBSNMP 用户的口令:
SYSMAN 用户的口令:
通知的电子邮件地址 (可选):
通知的发件 (SMTP) 服务器 (可选):
-----------------------------------------------------------------
已指定以下设置
数据库 ORACLE_HOME ................ f:\oracle\product\10.2.0\db_1
数据库主机名 ................ haohao.ufsoft.com.cn
监听程序端口号 ................ 1521
数据库 SID ................ test
通知的电子邮件地址 ...............
通知的发件 (SMTP) 服务器 ...............
-----------------------------------------------------------------
是否继续? [yes(Y)/no(N)]: yes
2013-1-24 21:02:34 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 f:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\test\emca_2013-01-24_08-59-22-下午.log。
2013-1-24 21:02:41 oracle.sysman.emcp.EMReposConfig createRepository
信息: 正在创建 EM 资料档案库 (此操作可能需要一段时间)...
2013-1-24 21:07:01 oracle.sysman.emcp.EMReposConfig invoke
信息: 已成功创建资料档案库
2013-1-24 21:07:22 oracle.sysman.emcp.util.DBControlUtil startOMS
信息: 正在启动 Database Control (此操作可能需要一段时间)...
2013-1-24 21:08:32 oracle.sysman.emcp.EMDBPostConfig performConfiguration
信息: 已成功启动 Database Control
2013-1-24 21:08:33 oracle.sysman.emcp.EMDBPostConfig performConfiguration
警告: 无法创建 Database Control 快捷方式
2013-1-24 21:08:34 oracle.sysman.emcp.EMDBPostConfig performConfiguration
信息: >>>>>>>>>>> Database Control URL 为 http://haohao.ufsoft.com.cn:5500/em <<<<<<<<<<<
已成功完成 Enterprise Manager 的配置
EMCA 结束于 2013-1-24 21:08:34
注意:当机器名改了以后可能需要重新配置db control(删除了原来的重建)
注意:
修改端口:c:\>emca –reconfig ports –dbcontrol_http_port 5501
F:\oracle\product\10.2.0\db_1\install\ portlist.ini端口信息
C:\>emca -config dbcontrol db -repos recreate
附其他解决方式.1,修改DBSNMP密码:
重新配置DBCONSOLE,需要输入DBSNMP密码,但任何密码都会显示错误,需要预先修改。
sql>alter user dbsnmp identified by xxx;
2,删除早期DBCONSOLE创建的用户:
sql>drop role MGMT_USER;
sql>drop user MGMT_VIEW cascade;
sql>drop user sysman cascade;
3,删除早期DBCONSOLE创建的对象:
sql>drop PUBLIC SYNONYM MGMT_TARGET_BLACKOUTS;
sql>drop public synonym SETEMVIEWUSERCONTEXT;
4,重新创建DBCONSOLE:(如果是在windows下,要先到注册表删除DBCONSOLE的服务,重启电脑)
$emca -config dbcontrol db -repos create
根据提示,先输入SID,再输入Y继续;
输入端口1521,输入SYS密码,输入DBSNMP密码,输入SYSMAN 密码,输入Y继续
完成。
5,检查状态 emctl status dbconsole。
附emca常用命令:
创建一个EM资料库
emca -repos create
重建一个EM资料库
emca -repos recreate
删除一个EM资料库
emca -repos drop
配置数据库的 Database Control
emca -config dbcontrol db
删除数据库的 Database Control配置
emca -deconfig dbcontrol db
重新配置db control的端口,默认端口在1158
emca -reconfig ports
emca -reconfig ports -dbcontrol_http_port 1160
emca -reconfig ports -agent_port 3940
先设置ORACLE_SID环境变量后,启动EM console服务
emctl start dbconsole
先设置ORACLE_SID环境变量后,停止EM console服务
emctl stop dbconsole
先设置ORACLE_SID环境变量后,查看EM console服务的状态
emctl status dbconsole
配置dbconsole的步骤
emca -repos create
emca -config dbcontrol db
emctl start dbconsole
重新配置dbconsole的步骤
emca -repos drop
emca -repos create
emca -config dbcontrol db
emctl start dbconsole
2.8开始和停止isql*plusC:\>isqlplusctl start
iSQL*Plus 10.2.0.1.0
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Starting iSQL*Plus ...
iSQL*Plus started.
C:\>isqlplusctl stop
iSQL*Plus 10.2.0.1.0
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Stopping iSQL*Plus ...
iSQL*Plus stopped.
F:\oracle\product\10.2.0\db_1\oc4j\j2ee\isqlplus\application-deployments\isqlplus\ application.log日志
F:\oracle\product\10.2.0\db_1\oc4j\j2ee\isqlplus\config\ http-web-site.xml 配置文件修改端口
F:\oracle\product\10.2.0\db_1\install\ portlist.ini端口信息
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14710393/viewspace-1085517/ ,如需转载,请注明出处,否则将追究法律责任。