SUMSEN

Oracle&Sql爱好者,用友NC管理员

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

手工创建数据库

1  创建实例

1.1 修改cmd下面的sqlplus显示方式,显示连接的实例名

进入C:\app\dell\product\11.2.0\dbhome_1\sqlplus\admin 修改glogin.sql,最后加上

 set sqlprompt "_user'@'_connect_identifier>"

或者修改本次回话的效果

sql>set sqlprompt _user"@"_connect_identifier>

 

看看显示效果

1.2 需要startup nomount,这个过程需要复制一个pfile(初始化参数),需要上面一个语句查看spfile的路径

show parameter spfile(注意这里不要写成pamameter),看到在“C:\app\dell\product\11.2.0\dbhome_1\database”

1.3 从现有的spfile创建一个pfile,pfile的文件名是INITncbeta(INIT+sid)
2  编辑初始化参数文件

2.1通过windows的cmd下运行oradim -new - sid sen 创建实例

2.2 将1.3的pfile里面的ncbeta全部替换为这里的sid sen,同时文件名改为INITsen

改好之后,记得点击保存


3  创建相应的目录结构

根据上面的sen的pfile创建各个sen文件夹

*.audit_file_dest='C:\app\dell\admin\sen\adump'
 
*.control_files='C:\app\dell\oradata\sen\control01.ctl',

'C:\app\dell\flash_recovery_area\sen\control02.ctl'
 
 

图方便,直接复制的ncbeta的文件夹,但是之后记得把里面各个子文件夹里面的东西删除


4  创建口令验证文件 (C:\>orapwd file=d:\oracle\product\10.2.0\db_1\database\pwdbook.ora password=admin entries=1)
5  执行建数据库脚本

5.1通过windows下set oracle_sid=sen ,之后sqlplus / as sysdba来启动oracle(nomount阶段)

连接提示“已连接到空闲例程”,说明没有startup数据库

5.2 可以startup

5.3 拷贝一下代码(这里路径和dbf的文件夹名称任意)

Create database sen
datafile 'D:\sendb\system01.dbf' size 300M
sysaux datafile 'D:\sendb\sysaux01.dbf'size 120M
default temporary tablespace temp tempfile 'D:\sendb\temp01.dbf' size 20M  
undo tablespace UNDOTBS1 datafile 'D:\sendb\undotbs01.dbf' size 200M
logfile
group 1 ('D:\sendb\redo01.log') size 10240K,
group 2 ('D:\sendb\redo02.log') size 10240K,
group 3 ('D:\sendb\redo03.log') size 10240K
;

人品爆发,这里一次性成功,昨天晚上n次失败

上面创建之后,controlfile自动生成

2013-01-24 16:17:32 更新

使用dbca图形界面的方式建库的时候,可以选择em和归档等,并且在创建好之后,自动有了oradata\sid文件夹,里面有了系统数据文件和控制文件

5.4 终于发现了我为什么昨天上ocp课犯的错误了,目前oracle已经是startup阶段,可是我又startup了n次,每次都报错,并且是???

5.5 win下看nls_lang发现是中文

修改为美语

SET NLS_LANG=AMERICAN

当前会话的修改:

SYS@sen>alter session set nls_language="american";

 

回话的修改:

再来看startup的报错(可以看到在同一个窗口下再次进入)


6  创建数据字典视图(SQL>@?/RDBMS/ADMIN/catalog.sql) --@?  oracle主目录(C:\app\dell\product\11.2.0\dbhome_1)

只有这一步了才能看到数据字典,比如desc user_tables,这里的?表示oracle home的路径

我的有点小问题,等了好久鼠标还在上面的_identifier>,我于是就强行回车键了


7  创建oracle内部包(SQL>@?/RDBMS/ADMIN/catproc.sql)

同上(导航上键来修改上步的)

这一步要比上面耗时多了许多,大概7分钟样子。做了这部之后,可以

SYS@nc3>desc dba_data_files;


8  SQL>@d:\oracle\product\10.2.0\db_1\sqlplus\admin\pupbld.sql (system)

这里是scott连接,权限不足,换成sysdba,又错,必须是system来搞这一步(老师提示了,上面)

搞定了


9  SQL>create spfile from pfile;
10  配置监听和服务名(NetManager)

10.1没有配置之前不可以通过sqlplus /@sen as sysdba登陆

10.2 通过net manager配置的时候,服务命名那里需要scott测试,通过sql建立scott

还是在那个rdbms的admin下

下图有unlock用户同时修改密码

提示缺少PRODUCT_USER_PROFILE,在第8步

配置好net manager的服务器名之后

但此时cmd下面sqlplus /@sen as sysdba会提示ORA-12154 TNS错误

然后lsnrctl status 发现监听只有一个ncbeta,配置的sen根本没有,想到了重启

lsnrctl stop lsnrctl start 之后果然sen来了

之后还是不行,百度找到了这个文章http://blog.csdn.net/wh62592855/article/details/4654024

ERROR:

ORA-12154: TNS: 无法解析指定的连接标识符

这里的提示信息是无法解析连接描述符,表示连接标识符,也就是tnsnname和你本地的tnsname.ora

里配置的不一致,连接时,请求tnsname描述符,但是更不就找不到,这样就会出现这样的错误,

检查我们配置的tnsname文件

我看到我的tnsname配置好像真的和之前的不一样:


ISEN =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = sen)
    )
  )

这个产生的原因是net manager配置的服务命名

我把开头的I去掉,重新以下连结,报错变了

还是看了上面的文章:一句话,要先startup之后监听才能和当前实例配合,才能用sqlplus /@sen as sysdba

ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 

这里的错误信息也描述的很清楚了,无法识别连接描述符里请求的服务。什么是连接描述符,不就是我们这里一直再提的tnsname 

的配置么,这个tnsname配置里的服务名无法识别,很显然这里的错误信息告诉我们两个重要信息。 

1. 已经和tnsname里描述中的服务器进行到了连接 

2. 连接中tnsname里的service_name并不能在连接中的服务器上找到。

确实这里写着监听程序不支持服务 

这句话是什么意思了,由于我的janes这个服务器,都没有启动数据库实例,所以没有一个实例存在在这个监听上,有就出现了这样的提示信息了,其实就是指 的监听现在没有一个数据库实例进行了注册,这里我们要先明白一个动态注册和静态注册的概念,对于9i或者以上的版本,数据库实例启动的时候nomount 这个状态,数据库就会把自己service_name注册到监听里,这个是动态注册,有时可以alter system register动态注册。静态注册就是通过listener.ora文件,把需要注册的数据库的服务名注册到监听里。 这个具体的一些知识,在别的文章 


11  配置dbconsole(dbsnmp,sys)(EMCA)

倪同学给的

 先修改sys,dbsnmp的密码
    conn / as sysdba
    alter user sys identified by admin;
    alter user dbsnmp account unlock identified by admin;
  c:\>emca -config dbcontrol db -repos create(这个要是不输入的话会一直让输入sysman密码,why?)
     SID:demo
     端口号:1521
     sys密码:admin
     dbsnmp密码:admin
     sysman密码:admin(密码是随机输入的)
     是否继续:Y
等待配置结束会有一个网址

这是日志:

配置: 未设置参数 DB_UNIQUE_NAME 的值。
2012-12-7 13:21:35 oracle.sysman.emcp.DatabaseChecks getDbUniqueName
配置: No Database unique name available. Will try to retrieve it from DB itself
2012-12-7 13:21:35 oracle.sysman.emcp.ParamsManager setParam
配置: Setting param: DB_UNIQUE_NAME value: sen
2012-12-7 13:21:35 oracle.sysman.emcp.ParamsManager getParam
配置: 未设置参数 DB_DOMAIN 的值。
2012-12-7 13:21:35 oracle.sysman.emcp.DatabaseChecks getDbDomain
配置: No db domain available. Will query db for db_domain parameter
2012-12-7 13:21:35 oracle.sysman.emcp.ParamsManager setParam
配置: Setting param: DB_UNIQUE_NAME value: sen
2012-12-7 13:21:35 oracle.sysman.emcp.ParamsManager setParam
配置: Setting param: SERVICE_NAME value: sen
2012-12-7 13:21:35 oracle.sysman.emcp.ParamsManager getParam
配置: 未设置参数 MODIFY_SID 的值。
2012-12-7 13:21:35 oracle.sysman.emcp.ParamsManager getParam
配置: 未设置参数 DBID 的值。

2012-12-10 更新

1 ,alter database datafile ''D:\sendb\sysaux01.dbf'' resize 300m;

2, 清除em相关配置 --删除db配置 emca -deconfig dbcontrol db

3,清除repository emca -repos drop

4,配置em --创建db control emca -config dbcontrol db -repos create

 

 10g 非归档模式 手工建库pfile参考:

nc3.__db_cache_size=209715200
nc3.__java_pool_size=4194304
nc3.__large_pool_size=4194304
nc3.__shared_pool_size=71303168
nc3.__streams_pool_size=0
*.audit_file_dest='C:\oracle\product\10.2.0/admin/nc3/adump'
*.background_dump_dest='C:\oracle\product\10.2.0/admin/nc3/bdump'
*.compatible='10.2.0.1.0'
*.control_files='C:\oracle\product\10.2.0/oradata/nc3/\control01.ctl','C:\oracle\product\10.2.0/oradata/nc3/\control02.ctl','C:\oracle\product\10.2.0/oradata/nc3/\control03.ctl'
*.core_dump_dest='C:\oracle\product\10.2.0/admin/nc3/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='nc3'
*.db_recovery_file_dest='C:\oracle\product\10.2.0/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=nc3XDB)'
*.job_queue_processes=10
*.nls_language='SIMPLIFIED CHINESE'
*.nls_territory='CHINA'
*.open_cursors=300
*.pga_aggregate_target=96468992
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=290455552
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='C:\oracle\product\10.2.0/admin/nc3/udump'

 事实证明:上面的pfile+再上面的建库sql完美

posted on 2012-12-05 22:56  sumsen  阅读(820)  评论(0编辑  收藏  举报