LINUX安装配置及连接oracle数据库
注:最开始的准备工作是下载linux下的oracle安装包,其次是安装图形界面,后面的安装需要图形界面进行配置。这里用到的是vnc,vnc的安装过程已由他人写出。
一、 安装前的准备工作
1) 检查基本需求(对于牛逼的服务器来说,这个肯定是满足要求的,可以跳过)
内存大小
grep MemTotal /proc/meminfo
交换分区大小
grep SwapTotal /proc/meminfo
增加交换分区
创建/home/swap这么一个分区文件。文件的大小是5120000个block,一般情况下1个block为1K,所以这里空间是5G。
dd if=/dev/zero of=/home/swap bs=1024 count=5120000
接着再把这个分区变成swap分区。
mkswap /home/swap
然后把它加到fstab里面
echo "/home/swap swap swap defaults 0 0" >> /etc/fstab
2) 检查软件需求,没有的就输入yum install进行安装
键入:
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc- gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh
这个时候会出现很多 xxxx is not installed
只需按顺序yum install xxxx即可完成绝大部分的文件
最后一个pdksh会出现异常,我遇到的是文件无法访问。
这个时候要下载pdksh-5.2.14-1.i386.rpm文件。
到这里下http://pan.baidu.com/s/1jGrFYxK
下载完毕之后:
a) 安装pdksh:
rpm -ivh pdksh-5.2.14-1.i386.rpm
b) 出错如下:
Failed dependencies:
ld-linux.so.2 is needed by pdksh-5.2.14-1.i386
libc.so.6 is needed by pdksh-5.2.14-1.i386
libc.so.6(GLIBC_2.0) is needed by pdksh-5.2.14-1.i386
libc.so.6(GLIBC_2.1) is needed by pdksh-5.2.14-1.i386
[root@rmbsclient ~]#
这个时候只需yum install上面缺的ld-linux.so.2,以及libc.so.6完成之后
重复第一步的安装
rpm -ivh pdksh-5.2.14-1.i386.rpm、
安装完成
至此安装前的准备环境搭建完成。
二、 安装中的修改工作
1.修改用户的SHELL限制,输入命令:vi /etc/security/limits.conf,按i键进入编辑模式,添加下列内容,编辑完成后按Esc键,输入“:wq”存盘退出。
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
2.修改/etc/pam.d/login文件,输入命令:vi /etc/pam.d/login,按a键进入编辑模式,添加下列内容,编辑完成后按Esc键,输入“:wq”存盘退出。
session required /lib/security/pam_limits.so
session required pam_limits.so
3.修改linux内核,修改/etc/sysctl.conf文件,输入命令: vi /etc/sysctl.conf ,按a键进入编辑模式,添加下列内容,编辑完成后按Esc键,输入“:wq”存盘退出。然后,使用命令:source /etc/sysctl.conf 使之立刻生效。
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
4.编辑 /etc/profile,输入命令:vi /etc/profile,添加下列内容,编辑完成后按Esc键,输入“:wq”存盘退出。
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
5.创建oracle用户和组,作为软件安装和支持组的拥有者
A:创建组,使用如下命令
groupadd oinstall
groupadd dba
B:创建orcale用户,并设置密码,如下命令
useradd -g oinstall -g dba -m oracle
passwd oracle
6.根据磁盘空间大小,创建数据库软件目录和数据文件存放目录,目录的位置,这里以home目录作为例子,如下:
mkdir /home/oracle/app
mkdir /home/oracle/app/oracle
mkdir /home/oracle/app/oradata
mkdir /home/oracle/app/oracle/product
7.更改目录属主为Oracle用户所有,如下命令:
chown -R oracle:oinstall /home/oracle/app
8.配置oracle用户的环境变量,必须切换到新创建的oracle用户下,如下命令:
输入:su – oracle (注意空格)
然后编辑文件 vi .bash_profile,添加如下内容,并保存退出。
umask 022
export ORACLE_BASE=/home/oracle/app
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
至此修改工作完成。
三、 安装步骤
1.以上配置全部完成后,输入su - oracle切换为oracle用户,以图形界面用Oracle用户登陆。将下载到本地的linux下Oracle安装包上传到linux中的目录中,然后使用如下命令解压:
上传:
rz p10404530_112030_Linux-x86-64_1of7.zip
rz p10404530_112030_Linux-x86-64_2of7.zip
解压:
unzipp10404530_112030_Linux-x86-64_1of7.zip
unzip p10404530_112030_Linux-x86-64_2of7.zip
解压完成之后,继续以oracle身份进入bin
#cd /bin
输入#xhost+
#xhost + localhost
此举的目的是设置进入图形化安装界面。
#export LANG=en_US
此举的目的是设置安装界面的文字类型。(这一步不能漏)
进入database(#cd database)
#./runInstaller
开始安装
此处省略各种图形界面
2.确认安装成功
Linux下的Oracle在安装结束后是处于运行状态的。运行top –u oracle可以看到以Oracle用户运行的进程。在图形化界面下,运行$ORACLE_HOME/sqldeveloper/sqldeveloper.sh可以出现Oracle自带的免费Oracle管理客户端SQL Developer。试着连接刚安装的Oracle,连接成功。
这时需要重启服务器,看服务器重启后,Oracle是否可以正常启动。以Root用户运行reboot命令可以重启Linux,重启完成后,默认情况下Oracle并不像Windows中的Oracle那样注册成服务,随机器一起启动的,所以需要手动敲入命令来启动。启动方式:以oracle用户登录运行以下语句:
注:Backspace变成^H的解决方法:
Ctrl+Backspase
1. 进入sqlplus:
sqlplus /nolog
2. 以sysdba的身份连接到数据库,并启动Oracle数据库引擎:
SQL> conn /as sysdba
SQL> startup
3. 退出sqlplus,运行Listener
SQL> exit
下面是启动数据库监听器
$ lsnrctl start
这个时候出现了错误,listener出现error
启动失败,这个时候需要修改listener.ora
添加在listener.ora文件的上半部分添加如下代码:
SID_LIST_LISTENER =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = “dbhome_1的路径” )
(SID_NAME = orcl)
)
必须以SID_LIST_LISTENER =开头
且要顶格写
(此处参考:http://www.itpub.net/thread-1600132-1-1.html 十楼的回复)
重启lsnrctl start
Ok
接下来就是用户的创建:
SQL>sqlplus /nolog SQL>conn /as sysdba
创建新用户
create user XXX identified by XXX
授予所有权限
grant connect,resource,dba,sysdba to XXX ;
若出现密码不对的时候(忘记密码):
scott用户的密码不对,进入管理员用户,修改scott用户密码即可
或者这样修改密码:
在运行栏里面敲:sqlplus(空格)/nolog回车
接着在弹出框里面敲:conn sys/password as sysdba回车
提示已连接
最后敲:alter user scott identified by scott123;回车
alter user scott account unlock;回车(对SCOTT解锁)
这样就解决了。
最后一步是sqldeveloper连接服务器的数据库
连接数据库出错:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
SQL> startup force
ORA-01261: Parameter db_recovery_file_dest destination string cannot be translat
ed
ORA-01263: Name given for file destination directory is invalid
OSD-04018: ??????????????????????????
O/S-Error: (OS 2) ??????????????????????
原来是某一个文件无效,找到打开 SPFILE,它是二进制码,但是还能看清部分文字,找到DB_RECOVERY_FILE_DEST的值,然后顺着那个值没有对应的目录flash_recovery_area
,然后就在database中新建了一个flash_recovery_area文件夹
没想到直接建立个空的目录就成功了
创建完成重新连接即可
录入数据时可能出现的中文乱码问题:
Sqldeveloper中文乱码的问题
regedit->MATCHINE->SOFTWARE->ORACLE下有个NLS_LANG,
把GBK改为UTF8即可