升东运维是一家专业从事Linux/Freebsd Unix/Windows平台网站维护业务的公司,专业提供Linux(CentOS Redhat Ubuntu等),Unix(Freebsd),Nginx,Apache等系统及网站维护,七年从业经验

Archive for the ‘oracle’ Category

oracle could not open parameter file 解决

星期四, 九月 8th, 2011
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/opt/oracle/10.2/dbs/initjdk.ora'

复制 /opt/oracle/admin/jkq(实例目录)/pfile/init.ora.862011111622(类似这个名字)

/opt/oracle/10.2/dbs/initjdk.ora

oracle不同实例/数据库 切换

星期三, 九月 7th, 2011

登录不同实例
sqlplus /nolog

conn user/[email protected]实例名
conn user/[email protected]实例名 as system

imp命令之前切换实例/数据库

export ORACLE_SID=session名称

imp

 

linux下oracle启动和关闭脚本

星期二, 九月 6th, 2011

vi shutdown_oracle.sh

#!/bin/sh
source ~/.bash_profile
lsnrctl stop
sqlplus /nolog<<EOF
connect / as sysdba
shutdown immediate
EOF

vi start_oracle.sh

#!/bin/sh
source ~/.bash_profile
lsnrctl start
sqlplus /nolog<<EOF
connect / as sysdba
startup
EOF

注意文件格式必须是unix格式

source ~/.bash_profile 是为了更新当前oracle的环境变量,这两个文件应该在oracle用户下运行,并且oracle已经设置环境变量

可以用如下vi命令查看设置

查看

:set ff?

设置

:set ff=unix
添加可执行权限

chmod +x start_oracle.sh

chmod +x shutdown_oracle.sh

oracle10gR2重建控制文件 解决ORA-01122,ORA-01122,ORA-01122错误

星期二, 九月 6th, 2011

错误的关停以及突然掉电都有可能导致这个错误

下面是解决办法,数据库安装在/opt/oracle/,注意替换下面的代码,后面的数据库编码要根据自己的编码进行修改!!

将下面的代码保存为create.sql放在 /home/oracle/目录下

STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/opt/oracle/oradata/orcl/redo01.log'  SIZE 50M,
  GROUP 2 '/opt/oracle/oradata/orcl/redo02.log'  SIZE 50M,
  GROUP 3 '/opt/oracle/oradata/orcl/redo03.log'  SIZE 50M
-- STANDBY LOGFILE
DATAFILE
  '/opt/oracle/oradata/orcl/system01.dbf',
  '/opt/oracle/oradata/orcl/undotbs01.dbf',
  '/opt/oracle/oradata/orcl/sysaux01.dbf',
  '/opt/oracle/oradata/orcl/users01.dbf',
  '/opt/oracle/oradata/orcl/example01.dbf'
CHARACTER SET zhs16gbk
;

下面登陆sqlplus

sqlplus /nolog

conn /as sysdba

shutdown

@create

startup

完毕之后测试是否能启动数据库

如果不能启动,在sqlplus中运行

recover database

CentOS5.6 x64 安装 oracle10GR2

星期五, 八月 26th, 2011
1.安装前装备
CentOS 5.6 x64 必须带桌面环境,如果没有桌面可以使用如下命令安装Gnome桌面
yum groupinstall ‘X Window System’  -y
安装GNOME桌面环境
yum groupinstall  ‘GNOME Desktop Environment’ -y
如果安装KDE桌面环境
yum groupinstall ‘KDE (K Desktop Environment)’ -y

卸载GNOME桌面环境
yum groupremove “GNOME Desktop Environment”
卸载KDE桌面环境
yum groupremove “KDE (K Desktop Environment)”

1.1 硬件要求
要求 查看方式
内存 至少1G内存 grep MemTotal /proc/meminfo
SWAP
如果内存为大于512M则swap大小为内存2倍
如果内存在1到2G之间则swap大小为内存1.5倍
如果内存在2到8G之间则swap大小为内存1倍
如果内存大于8G则swap大小为内存0.75倍
grep SwapTotal /proc/meminfo
磁盘
/tmp目录至少400MB
oracle安装目录大约在1.5到3.5G之间
数据文件至少1.2G
df -h

1.2软件要求CentOS5.6标准安装,使用YUM安装以下所需软件

yum install -y compat-db pdksh sysstat screen libXp compat-libstdc++*

以下是必须的安装包,如果你使用的源无法安装全部包,可以在centos光盘内找到,使用rpm -Uvh package_name 安装。

检测包是否安装
rpm –q package_name

binutils-2.15.92.0.2-10.EL4

compat-db-4.1.25-9

control-center-2.8.0-12

gcc-3.4.3-9.EL4

gcc-c++-3.4.3-9.EL4

glibc-2.3.4-2

glibc-common-2.3.4-2

gnome-libs-1.4.1.2.90-44.1

libstdc++-3.4.3-9.EL4

libstdc++-devel-3.4.3-9.EL4

make-3.80-5

pdksh-5.2.14-30

sysstat-5.0.5-1

xscreensaver-4.18-5.rhel4.2

1.3添加用户及用户组

添加必要的用户组:

/usr/sbin/groupadd oinstall

/usr/sbin/groupadd dba

将oracle使用者加入到sudo群组中

vi /etc/sudoers

找到root        ALL=(ALL)        ALL

这行,并且在底下再加入

oracle        ALL=(ALL)        ALL

建立oracle用户

/usr/sbin/useradd -m -g oinstall -G dba  oracle

 

配置oracle的密码:

passwd oracle

 

1.4配置内核参数、修改用户环境变量

编辑/etc/sysctl.conf文件,在此文件中加入:

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default = 262144

net.core.rmem_max = 262144

net.core.wmem_default = 262144

net.core.wmem_max = 262144

运行命令: /sbin/sysctl –p使设置生效

编辑/etc/security/limits.conf文件,加入以下内容:

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

编辑/etc/pam.d/login文件,加入以下内容:

session required pam_limits.so

同时在/etc/profile中加入一下代码:

if [ $USER = “oracle” ]; then

if [ $SHELL = “/bin/ksh” ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

修改oracle用户的环境配置文件,su oracle 切换到oracle用户环境,然后编辑/home/oracle/.bash_profile:

cd /home/oracle

vi .bash_profile

修改并加入以下內容

ORACLE_BASE=/opt/oracle

ORACLE_HOME=$ORACLE_BASE/10.2

ORACLE_SID=rains_sid

LD_LIBRARY_PATH=$ORACLE_HOME/lib

PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH

执行 source /home/oracle/.bash_profile

 

vi /etc/redhat-release,修改redhat-release文件内容如下:(10G默认不支持5.6版本,修改掉此信息可略过错误,默认#CentOS release 5.6 (Final) )

redhat-4

1.5 创建目录

创建ORACLE_BASE目录:

mkdir -p /opt/oracle/10.2

权限设置:

chown -R oracle:oinstall /opt/oracle/

1.6 配置系统ip为静态ip,然后

vi /etc/hosts

添加

192.168.1.2 hostname

ip为内网或者外网ip hostname更换为你的主机名,可以使用hostname命令查看,

另外注释掉127.0.0.1

#127.0.0.1      localhost.localdomain localhost

2.安装

2.1 切换至oracle用户

下载oracle官方oracle x64 10gR2文件  10201_database_linux_x86_64.cpio.gz
把文件放在/opt/里面
gunzip 10201_database_linux_x86_64.cpio.gz
cpio -idcmv < *.cpio
cd /opt/database

oracle用户下执行:(使环境变量生效,防止乱码,顺序不要搞错)

source ~/.bash_profile

export LANG=en_US

root用户下执行 xhost +

2.2 再切换回oracle执行:/opt/database/runInstaller

如果提示root用户无法运行,su oracle切换身份即可
如果提示:Can’t connect to X11 window server using ‘:0.0’
切换到root用户 终端运行 xhost +(xhost和+之间有空格)
选择安装方法,建议选择高级模式,如下图所示:
点击“next”,进入下一步骤
使用默认配置,点击“next”进入下一步骤
选择数据库版本,选择“企业版”,点击“产品语言”,出现下图对话框
在对话框中添加“简体中文”,点击“OK”,进入下一步
使用默认的安装目录,点击“next”进入下一步骤
进行数据库安装前检查,如上图所示,检查通过,如果没有任何错误,点击“next”
此处选择“只安装数据库软件”,点击“next”,进入下一步骤
点击“install”,进行安装
正在安装,如上图所示安装完成后点击“OK”
用root用户,运行以下脚本:
/opt/app/oracle/oraInventory/orainstRoot.sh
/opt/app/oracle/product/10.2.0/db_1/root.sh
[[email protected]]# /opt/app/oracle/oraInventory/orainstRoot.sh
Changing permissions of /opt/app/oracle/oraInventory to 770.
Changing groupname of /opt/app/oracle/oraInventory to oinstall.
The execution of the script is complete
[[email protected]]# /opt/app/oracle/product/10.2.0/db_1/root.sh
Running Oracle10 root.sh script…
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME=  /opt/app/oracle/product/10.2.0/db_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
(此处直接回车,选择默认的安装目录)
Copying dbhome to /usr/local/bin …
Copying oraenv to /usr/local/bin …
Copying coraenv to /usr/local/bin …
Creating /etc/oratab file…
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
此时数据库软件的安装完成。
3.创建数据库
数据库软件安装完成后还需要创建数据库实例,在原来运行runInstall的终端中运行dbca命令,运行此命令后,将会在本地的xmanager-passive的显示如下界面:
点击“next”进行配置
选择“create a database”进行创建数据库,点击“Next”进入下一步
勾选“Create Database”,点击“Finish”进入下一步
选择“General Purpose”,点击“Next”,进入下一步,
输入SID,此处输入的SID应该与环境变量的中设置的SID一致,注意区分大小写。点击“Next”进入下一步,
点击“Next”进入下一步
输入密码,点击“Next”进入下一步
在存储选项中选择“File System”,点击“Next”进入下一步
使用默认配置,点击“Next”进入下一步
使用默认配置,点击“Next”进入下一步
点击“Next”进入下一步
在初始化参数设置中的选项卡中选择“Sizing”,在Processes中填写600
在字符集选项卡中,选择字符集为“ZHS16FBK”,点击“Next”进入下一步
使用默认值,点击“Next”进入下一步
点击“Finish”创建数据库
点击“OK”确认配置
建数据库创建中……
在sys和system账号中输入密码,注意,不要勾选锁定帐户,如果你锁定了帐户就无法使用这两个登录,
如果锁定了,可以登录sqlplus进行修改
点击“OK”至此数据库安装完成。
附:oracle 10g下载地址:
OracleDatabase 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for Microsoft Windows (x64)
OracleDatabase 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for Linux x86
OracleDatabase 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for Linux x86-64
OracleDatabase 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for AIX5L
OracleDatabase 10g Release 2 (10.2.0.2) Enterprise/Standard Edition for Solaris Operating System (x86)
OracleDatabase 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for Solaris Operating System (x86-64)