Oracle 安装和卸载问题收集(集合篇)第6/6页

Oracle 9i AS安装错误 解决:按照它的提示编辑host文件,加上127 0 0 1 localhost localhost spfile 和 pfi

Oracle 9i AS安装错误

解决:按照它的提示编辑host文件,加上127.0.0.1 localhost #localhost
spfile 和 pfile异同
spfile,服务器参数文件是在Oracle9i及更高版本中一个新特性。其使Oracle9i可以更改大多数过去在使用数据库联机和用户时不能动态更改的初始化参数。此外,服务器参数文件使Oracle9i能记住会话之间动态更改过的初始化参数的设置。
pfile,相当与Oracle8i及以前版本的Init.ora。
可以根据pfile建立spfile:如:create spfile from pfile =‘路径/init.ora'
数据库升级错误——不相关的字符集
数据库从Oracle8.0.5升级到8.1.5,备份数据恢复时出现错误。错误提示:不相关的字符集(805到820)
1、重建Oracle 8i数据库,建库时指定同一字符集,再移植; 查看原数据库字符集, select * from nls_database_parameters
2、设置原数据库Oracle 805 的环境变量NLS_LANG与ora 8i数据库一致,执行export时可以转换字符集。
3、exp 与 imp 最好都使用Oracle 816 带的,不要用Oracle 805 的exp 导出的dmp 文件,又用Oracle 816 的 imp 来导。
启动 iSQL*Plus
要启动 iSQL*Plus,请执行以下步骤:
连接到 Internet 或 Intranet,然后启动 Web 浏览器。在 Web 浏览器的“位置”字段或“地址”字段中,输入 Oracle9i HTTP Server URL,并接着输入 isqlplus。iSQL*Plus URL 如下所示:http://machine_name.domain:7777/isqlplus
如果您不知道 Oracle9i HTTP Server URL,请向系统管理员咨询。
按 Enter 键将转到该 URL。Web 浏览器中将显示 iSQL*Plus“登录”屏幕。
在“用户名”字段和“口令”字段中,输入 Oracle9i 用户名和口令。如果您不知道 Oracle9i 用户名和口令,请向数据库管理员咨询。
将“连接标识符”字段保留为空可以连接到默认数据库。输入 Oracle Net 数据库别名时,可以连接到默认数据库以外的其他数据库。如果已配置了限制的数据库访问,“连接标识符”字段就会变成可供选择的可用数据库的下拉列表。
单击“登录”,连接到相关数据库。Web 浏览器上将会显示 iSQL*Plus“工作屏幕”。
此时,您可以在“工作屏幕”的输入区域中输入并执行 SQL、PL/SQL 和 SQL*Plus 语句和命令。
Oracle 816中启动Enterprise Manager
系统环境:
1、操作系统:Windows 2000
2、数据库: Oracle 8i R2 (8.1.6) for NT 企业版
3、安装路径:C:\ORACLE
错误现象:
默认安装完Oracle 816 for NT后,想使用Oracle816 for NT的OEM工具来管理数据库,开始→程序→Oracle - OraHome81→Enterprise Manager→Console。这时系统出现以下画面一:

点击“确定”,出现画面二、三。

在“添加管理服务器”栏上输入本机IP地址,如:192.1.1.1,点击“确定”,出现画面四。
画面显示出的oradb就使本机名称,点击“确定”,出现画面五,进行“Oracle Enterprise Manager 登录”。
输入口令/密码:system/manager,点击“确定”,出现画面六,出现以下错误提示。
VTK-1000 : Unable to connect to the management server oradb. Please vertify that you have entered the correct host name nd the status of the Oracle Managerment Server.解决方法:
1、使用Enterprise Manager配置辅助工具
开始→程序→Oracle - OraHome81→Enterprise Manager→Configuration Assistant
a、使用Configuration Assistant工具来创建一个新的资料档案库,如图七。
单击“下一步”,出现画面八。
b、 先登录 用户名:system,密码:manager,服务:oradb,注:输入的用户必须具有DBA权限,单击“下一步”,出现画面九。(9i为sysman/oem_temp)

c、再创建拥有此资料档案库的用户,系统默认取机器名,这里我们设用户名为:test,密码:test,输入两遍口令,单击“下一步”,出现画面十。
d、因为输入的是一个新用户,系统要求指定用户表空间,本例使用系统推荐,
单击“下一步”,系统正在创建OEM_REPOSITORY表空间,创建完毕后出现画面十一。
e、系统显示“创建资料档案库概要”,单击“完成”,显示“配置辅助工具进度”,如图十二。

单击“显示详细资料”,可以看到系统正在创建各种对象的提示。
系统处理完成,单击“关闭”,如图十三。

2、 启动OracleOraHome81ManagementServer服务:开始→设置→控制面版→管理工具→服务,如图十四,找到Oracle相关服务的位置。
单击“启动”,如图十五,如果上一步没有创建资料档案库,则会启动失败。
把OracleOraHome81ManagementServer服务设置成自动启动方式。
3、 重新进行Oracle Enterprise Manager 登录:开始→程序→Oracle - OraHome81→Enterprise Manager→Console
Oracle Enterprise Manager 的默认管理员是 sysman/oem_temp,系统管理员应该马上更改口令。
如图十六,不要在管理员一栏直接写sysman/oem_temp,而是分别输入“用户名/密码”。

单击“确定”,出现图十七,安全警告,要求你立即更改sysman的口令。

本例输入两遍manager作为口令,输入完口令后,单击“更改”,系统正式调出“Oracle Enterprise Manager 控制台 SYSMAN@oradb”的画面。
备份和恢复数据库的时候启动OMS时总是提示VTD——0057连接资料档案库时出错Oracle sysman emSDK client ons client NoDomainException
1.run "emca" to create a "repository" for oem
2.agentctl start
oemctl start oms
$ORACLE_HOME/network/snmp/peer/start_peer -a
3.oemapp dbastudio <= initial account/password=sysman/oem_temp
数据库的创建脚本
系统环境:
1、操作系统:Windows 2000 Server,机器内存128M
2、数据库: Oracle 8i R2 (8.1.6) for NT 企业版
3、安装路径:D:\ORACLE
建库步骤:
1、手工创建相关目录
D:\Oracle\admin\test
D:\Oracle\admin\test\adhoc
D:\Oracle\admin\test\bdump
D:\Oracle\admin\test\cdump
D:\Oracle\admin\test\create
D:\Oracle\admin\test\exp
D:\Oracle\admin\test\pfile
D:\Oracle\admin\test\udump
D:\Oracle\oradata\test
D:\Oracle\oradata\test\archive
2、手工创建初始化启动参数文件:D:\Oracle\admin\test\pfile\inittest.ora,内容:
3、手工创建D:\Oracle\Ora81\DATABASE\inittest.ora文件,
内容:IFILE='D:\Oracle\admin\test\pfile\inittest.ora'
4、使用orapwd.exe命令,创建D:\Oracle\Ora81\DATABASE\PWDtest.ora
命令:D:\Oracle\Ora81\bin\orapwd file=D:\Oracle\Ora81\DATABASE\PWDtest.ora password=ORACLE entries=5
5、通过oradim.exe命令,在服务里生成一个新的实例管理服务,启动方式为手工
set ORACLE_SID=test
D:\Oracle\Ora81\bin\oradim -new -sid test -startmode manual -pfile "D:\Oracle\admin\test\pfile\inittest.ora"
6、生成各种数据库对象D:\>svrmgrl
--创建数据库
connect INTERNAL/Oracle
startup nomount pfile="D:\Oracle\admin\test\pfile\inittest.ora"
CREATE DATABASE test
LOGFILE 'D:\Oracle\oradata\test\redo01.log' SIZE 2048K,'D:\Oracle\oradata\test\redo02.log' SIZE 2048K, 'D:\Oracle\oradata\test\redo03.log' SIZE 2048K
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXLOGHISTORY 1
DATAFILE 'D:\Oracle\oradata\test\system01.dbf' SIZE 58M REUSE AUTOEXTEND ON NEXT 640K
MAXDATAFILES 254
MAXINSTANCES 1
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET ZHS16GBK;
控制文件、日志文件在上面语句执行时生成
connect INTERNAL/Oracle
--修改系统表空间
ALTER TABLESPACE SYSTEM DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 50);
ALTER TABLESPACE SYSTEM MINIMUM EXTENT 64K;
--创建回滚表空间
CREATE TABLESPACE RBS DATAFILE 'D:\Oracle\oradata\test\rbs01.dbf' SIZE 256M REUSE
AUTOEXTEND ON NEXT 5120K
MINIMUM EXTENT 512K
DEFAULT STORAGE(INITIAL 512K NEXT 512K MINEXTENTS 8 MAXEXTENTS 4096);
--创建用户表空间
CREATE TABLESPACE USERS DATAFILE 'D:\Oracle\oradata\test\users01.dbf' SIZE 128M REUSE
AUTOEXTEND ON NEXT 1280K
MINIMUM EXTENT 128K
DEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);
--创建临时表空间
CREATE TABLESPACE TEMP DATAFILE 'D:\Oracle\oradata\test\temp01.dbf' SIZE 32M REUSE
AUTOEXTEND ON NEXT 640K
MINIMUM EXTENT 64K
DEFAULT STORAGE(INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0) TEMPORARY;
--创建工具表空间
CREATE TABLESPACE TOOLS DATAFILE 'D:\Oracle\oradata\test\tools01.dbf' SIZE 64M REUSE
AUTOEXTEND ON NEXT 320K
MINIMUM EXTENT 32K
DEFAULT STORAGE ( INITIAL 32K NEXT 32K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);
--创建索引表空间
CREATE TABLESPACE INDX DATAFILE 'D:\Oracle\oradata\test\indx01.dbf' SIZE 32M REUSE
AUTOEXTEND ON NEXT 1280K
MINIMUM EXTENT 128K
DEFAULT STORAGE ( INITIAL 128K NEXT 128K MINEXTENTS 1 MAXEXTENTS 4096 PCTINCREASE 0);
--创建回滚段
CREATE PUBLIC ROLLBACK SEGMENT RBS0 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS1 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS2 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS3 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS4 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS5 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS6 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS7 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS8 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS9 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS10 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS11 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS12 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS13 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS14 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS15 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS16 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS17 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS18 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS19 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS20 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS21 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS22 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS23 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
CREATE PUBLIC ROLLBACK SEGMENT RBS24 TABLESPACE RBS STORAGE ( OPTIMAL 4096K );
--使回滚段在线
ALTER ROLLBACK SEGMENT "RBS0" ONLINE;
ALTER ROLLBACK SEGMENT "RBS1" ONLINE;
ALTER ROLLBACK SEGMENT "RBS2" ONLINE;
ALTER ROLLBACK SEGMENT "RBS3" ONLINE;
ALTER ROLLBACK SEGMENT "RBS4" ONLINE;
ALTER ROLLBACK SEGMENT "RBS5" ONLINE;
ALTER ROLLBACK SEGMENT "RBS6" ONLINE;
ALTER ROLLBACK SEGMENT "RBS7" ONLINE;
ALTER ROLLBACK SEGMENT "RBS8" ONLINE;
ALTER ROLLBACK SEGMENT "RBS9" ONLINE;
ALTER ROLLBACK SEGMENT "RBS10" ONLINE;
ALTER ROLLBACK SEGMENT "RBS11" ONLINE;
ALTER ROLLBACK SEGMENT "RBS12" ONLINE;
ALTER ROLLBACK SEGMENT "RBS13" ONLINE;
ALTER ROLLBACK SEGMENT "RBS14" ONLINE;
ALTER ROLLBACK SEGMENT "RBS15" ONLINE;
ALTER ROLLBACK SEGMENT "RBS16" ONLINE;
ALTER ROLLBACK SEGMENT "RBS17" ONLINE;
ALTER ROLLBACK SEGMENT "RBS18" ONLINE;
ALTER ROLLBACK SEGMENT "RBS19" ONLINE;
ALTER ROLLBACK SEGMENT "RBS20" ONLINE;
ALTER ROLLBACK SEGMENT "RBS21" ONLINE;
ALTER ROLLBACK SEGMENT "RBS22" ONLINE;
ALTER ROLLBACK SEGMENT "RBS23" ONLINE;
ALTER ROLLBACK SEGMENT "RBS24" ONLINE;
--修改sys用户的临时表空间为TEMP
alter user sys temporary tablespace TEMP;
--创建数据字典表
@D:\Oracle\Ora81\Rdbms\admin\catalog.sql;
@D:\Oracle\Ora81\Rdbms\admin\catexp7.sql
@D:\Oracle\Ora81\Rdbms\admin\catproc.sql
@D:\Oracle\Ora81\Rdbms\admin\caths.sql
connect system/manager
@D:\Oracle\Ora81\sqlplus\admin\pupbld.sql
connect internal/Oracle
@D:\Oracle\Ora81\Rdbms\admin\catrep.sql
exit
--生成SQL*Plus帮助系统
sqlplus SYSTEM/manager
@D:\Oracle\Ora81\sqlplus\admin\help\helpbld.sql helpus.sql
exit
--修改system用户默认表空间和临时表空间
svrmgrl
connect internal/Oracle
alter user system default tablespace TOOLS;
alter user system temporary tablespace TEMP;
exit
7、将test实例启动服务设置成自动启动方式
D:\Oracle\Ora81\bin\oradim -edit -sid test -startmode auto
启动ARCHIVELOG模式
C:\>svrmgrl
Oracle Server Manager Release 3.1.6.0.0 - Production
版权所有 (c) 1997,1999,Oracle Corporation。保留所有权利。
Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production
SVRMGR> connect internal
连接成功
SVRMGR>shutdown
已关闭数据库。
已卸下数据库。
已关闭 ORACLE 实例。
SVRMGR> startup mount
已启动 ORACLE 实例。
系统全局区域合计有 57124108个字节
Fixed Size 70924个字节
Variable Size 40198144个字节
Database Buffers 16777216个字节
Redo Buffers 77824个字节
已装入数据库。
SVRMGR> alter database archivelog;
语句已处理。
SVRMGR> archive log start
语句已处理。
SVRMGR> alter database open;
语句已处理。
SVRMGR> alter system switch logfile; --强制系统进行日志切换,可马上观察到归档日志的产生
语句已处理。
SVRMGR> exit
服务器管理程序结束。
修改数据库参数文件c:\Oracle\admin\oradb\pfile\init.ora,
取消以下语句的#注释
log_archive_start = true
log_archive_dest_1 = "location=C:\Oracle\oradata\oradb\archive"
log_archive_format = %%ORACLE_SID%%T%TS%S.ARC
关闭数据库,重新启动
查看C:\Oracle\oradata\oradb\archive目录下,可以看到类似ORADBT001S01201.ARC的文件,说明归档成功
PLUS:Oracle9i中需要执行的部分
SQL> alter system set log_archive_dest_1 ="location=E:\Oracle\oradata\test\archive" scope = spfile;
SQL> alter system set log_archive_start = true scope = spfile;
补充一些概念
解释init.ora参数文件中关于归档重做日志参数项的含义
归档模式是自动还是手工,true为自动,false为手工
log_archive_start = true
归档日志文件所保存的路径
log_archive_dest_1 = "location=C:\Oracle\oradata\oradb\archive"
归档日志文件的命名方法
log_archive_format = %%ORACLE_SID%%T%TS%S.ARC
归档命令:
启动自动归档模式,系统重起后,将按init.ora中的参数log_archive_start的值设置归档方式
SVRMGR> archive log start
启动手工归档模式
SVRMGR> archive log stop
查看归档信息:重做日志是否归档方式、是自动归档还是手工归档、归档路径、最旧的联机日志循序号
SVRMGR> archive log list
归档一个已满,但没有归档的联机重做日志
SVRMGR> archive log next
归档所有已满,但没有归档的联机重做日志
SVRMGR> archive log all
注意:一个事务即使不被提交,也会被写入到重做日志中。
SYS下的程序包和程序包体仅STANDARD包体可以编译为valid
问题:我的sys下的程序包和程序包体都是invalid.但是STANDARD包体可以编译为valid.其他程序包都是invalid. 编译时提示:
VBO-4553:PL/SQL 程序包编译是不。有关详细信息,请按该属性页上的显示错误。ORA-06554:????? PL/SQL ???? DBMS_STANDARD
SQLPLUS连接时提示:ERROR:ORA-06554: package DBMS_STANDARD must be created before using PL/SQL
Error accessing package DBMS_APPLICATION_INFO
ERROR:ORA-06554: package DBMS_STANDARD must be created before using PL/SQL
解答:
用$ORACLE_HOME/RDBMS/ADMIN下面的相关文件重新创建一下这些包。
SYSDBA登陆运行
$ORACLE_HOME/RDBMS/ADMIN/CATALOG.SQL
$ORACLE_HOME/RDBMS/ADMIN/CATPROC.SQL
如何实现:插入数据到数据库A中的表TPROCESS,数据库自动更新到数据库B中的表TLOG?
1. at db1
chk tnsnames.ora
CONNECT_STRING_DB2 = ...
tnsping CONNECT_STING_DB2
sql> create public database link DB2 using 'CONNECT_STING_DB2';
2. at db2
chk tnsnames.ora
CONNECT_STRING_DB1 = ...
tnsping CONNECT_STING_DB1
sql> create public database link DB1 using 'CONNECT_STING_DB1';
3. at db1
sql> create trigger ... after insert ...
insert into USER.TABLE@DB2 ... <<== using database link !!!
:NEW.column1, :NEW.column2 ...
从一个字符集不是中文字符集的数据库中EXP数据库,然后导入到一个中文字符集的数据库中
EXP/IMP是一种数据库到出导入工具,但是在EXP/IMP对数据库的字符集要求比较严格,如果EXP出的数据库的字符集和导入数据库的字符集不兼容。导入无法完成。此时需要采取一种特殊的方法进行操作。由于该操作是有一定危害性的操作,在操作过程中,数据库突然出现故障的情况下,会导致数据库可能无法正常启动。因此操作前一定要先备份数据库。
1、在原数据库执行sqlplus,连接sys用户,修改字符集参数,然后退出。
SQL> connect sys/******;
update props$ set value$ = 'ZHS16GBK' where name = 'NLS_CHARACTERSET';
update props$ set value$ = 'ZHS16GBK' where name = 'NLS_NCHAR_CHARACTERSET';
commit;
SQL> quit;
2、执行svrmgrl,关闭并重新开启Oracle数据库
SVRMGR> connect internal/******; (口令一般为"Oracle")
SVRMGR> shutdown immediate;
SVRMGR> startup mount;
SVRMGR> alter system enable restricted session;
SVRMGR> alter system set job_queue_process=0;
SVRMGR> alter database open;
SVRMGR> alter database character set ZHS16GBK;
SVRMGR> exit;
3、修改环境变量NLS_LANG
由 AMERICAN_AMERICA.WE8ISO8859P1
转换为 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
如果是WINDOWS,用Regedit修改ORACLE下的键值。如果是UNIX系统,修改环境变量:NLS_LANG=...;export NLS_LANG
如果是OpenVMS:修改Login.com文件中的设置,然后重新执行一次Login.com
4、执行exp导出数据
5、将环境变量NLS_LANG修改为原来的值
6、执行sqlplus,连接sys用户,恢复字符集参数,然后退出。
connect sys/******; (口令一般为"manager")
update props$ set value$ = 'WE8ISO8859P1' where name = 'NLS_CHARACTERSET';
update props$ set value$ = 'WE8ISO8859P1' where name = 'NLS_NCHAR_CHARACTERSET';
commit;
SQL> quit;
7、重复步骤2,关闭并重新开启Oracle数据库
8、将导出的dmp文件导入目标数据库(字符集为中文)
成功创建DBLink,但不能连接
问题:
ORACLE 8.1.6 for NT,现在需要连另一个ORACLE 8 FOR UNIX,当然是要建立DBLINK。但是建立本地网络服务名时可以连接上了,所建DBLINK就是连接不上,为什么?
用select <xxx> from <表名>@<db_link>
错误是:ORA-02085: 数据库链接ORA8I.US.ORACLE.COM与ORA8I相连结(ora8i 是DBLINK的名字)
解答:
如果你的源数据库的GLOBAL_NAME=TRUE,那么你的DBLINK的名字必须和远端数据库的全局名一致,否则会发生2085 错误。
你可设置源数据库的GLOBAL_NAME=FALSE,也可以在创建DBLINK的时候把DBLINK的名称设置为远程数据库的全局名。
How to Configure the 9i Agent with Multiple Network Cards
fact: Oracle Intelligent Agent 9.0.1
fix:
Configuring the Version 9.0.1 Agent for Use with Multiple Network Cards (NIC)(From the Oracle IA User's Guide Release 9.0.1 Part Number A88771-02):
As with version 8.1.7 of the Intelligent Agent, 9i Intelligent Agent users have three options to configure the Agent on a machine with multiple network cards.By default the Agent will bind to the primary NIC on its machine ('le0' on UNIX platforms and 'network0' on Windows NT platforms). The other two options are:
a. Ability to bind to a NIC specified by the user.