安装ubuntu桌面版。(建议硬盘最小20GB,这个只是确保安装能完成,装数据就别想了)。
设置用户名为ora_user。
设置桥接网卡模式
gedit/etc/network/interfaces
autolo
ifacelo inet loopback
autoenp0s3
ifaceenp0s3 inet static
address192.168.1.随意
netmask255.255.0.0
gateway192.168.1.1
DNS192.168.1.1
gedit /etc/resolv.conf
nameserver 192.168.1.1
nameserver 114.114.114.114
这两个每个都可以。
确保可以ping通外网。
切换
root
。
apt-get install automake autotools-dev binutils bzip2 elfutils expat gawk gcc gcc-multilib g++-multilib ksh less lib32z1 libaio1 libaio-dev libc6-dev libc6-dev-i386 libc6-i386 libelf-dev libltdl-dev libodbcinstq4-1 libodbcinstq4-1:i386 libpth-dev libpthread-stubs0-dev libstdc++5 make openssh-server rlwrap rpm sysstat unixodbc unixodbc-dev unzip x11-utils zlibc zip default-jre
正常的内核参数不足以使oracle数据库正常运行,所以要修改这些参数。
编辑/etc/sysctl.conf,添加内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744 #linux分配的最大文件句柄数
kernel.shmall = 2097152 #系统共享内存页面的最大数目
kernel.shmmax = 536870912 #共享内存段的最大尺寸
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096 #系统共享内存段的最大数目
net.ipv4.ip_local_port_range = 9000 65500 #ip端口号,原本的1024~4999不够oracle
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
命令:sysctl -p
修改单个用户允许使用的进程和文件数目
编辑/etc/security/limits.conf
ora_user soft nproc 2047
ora_user hard nproc 16384
ora_user soft nofile 1024
ora_user hard nofile 65536
ora_user soft stack 10240
修改/etc/pam.d/login,下面这句话没有就添加,有就算了。
Session required/lib/security/pam_limits.so
切换普通用户
mkdir ~/tools
mkdir ~/tools/oracle11g
sudo groupadd oracle
sudo groupadd dba
usermod -G oracle ora_user
usermod -G dba ora_user
chown -R ora_user:oracle /home/ora_user/tools
su ora_user
gedit ~/.profile
#安装目录
export ORACLE_BASE=/home/ora_user/tools/oracle11g
#脚本目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
#数据库SID
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export NLS_LANG=.AL32UTF8
export PATH=${PATH}:${ORACLE_HOME}/bin/:$ORACLE_HOME/lib64;
source ~/.profile
mkdir /usr/lib64
ln -s /etc /etc/rc.d
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/basename /bin/basename
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /lib64/
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/
安装包:linux.x64_11gR2_database_1of2.zip,linux.x64_11gR2_database_2of2.zip
现在把压缩文件解压缩,得到database目录。
Cd database
chmod 777 runInstaller
./runInstaller
1、填不填无所谓
2、选择第二个,安装数据库。
3、选择第一个
4、这一步我选了两个,可能没啥用。不选中文也可以。
5、选择第一项,企业版
6、把oraclebase修改为上文中创建的目录。
7、直接next
8、
9、检查安装条件。点击右上角ignoreall全部忽略。软件包版本太高,oracle11g识别不了。
10、安装
启动oracle:
lsnrctlstart
exportORACLE_SID=orcl
sqlplus
conn/ as sysdba
start
startup
安装时出现问题解决方法:
1、Error in invoking target ‘install’ of makefile ‘/home/dong/tools/oracle11g/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk’. See ‘/home/dong/tools/oraInventory/logs/installActions2015-01-22_09-39-03AM.log’ for details.
这个我查的结果是缺少glibc库,glibc在Ubuntu下是叫libc6,已经装好了,但是oracle不识别。
2、Errorin invoking target ‘all_no_orcl’ of makefile‘/home/dong/tools/oracle11g/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk’.See‘/home/dong/tools/Inventory/logs/installActions2016-03-19_02-37-44PM.log’for details.
解决办法:
打开一个新的终端,输入如下四个命令:
sed-i 's/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1-Wl,--no-as-needed \2/g' $ORACLE_HOME/network/lib/env_network.mk
sed-i 's/^\(ORACLE_LINKLINE.*\$(ORACLE_LINKER)\) \(\$(PL_FLAGS)\)/\1-Wl,--no-as-needed \2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
sed-i 's/^\(\$LD \$LD_RUNTIME\) \(\$LD_OPT\)/\1 -Wl,--no-as-needed \2/g'$ORACLE_HOME/bin/genorasdksh
sed-i 's/^\(\s*\)\(\$(OCRLIBS_DEFAULT)\)/\1 -Wl,--no-as-needed \2/g'$ORACLE_HOME/srvm/lib/ins_srvm.mk
然后在图形界面点击‘Retry’就能继续安装了。
使用时出现问解决方法:
1、SQLplus启动,出现错误:netservice name is incorrectly specified 。
Sudogedit ~/.profile
添加:exportORACLE_SID=orcl
source~/.profile
2、sqlplus、lsnrctl、emctl等命令不识别,
cp /home/ora_user/tools/oracle11g/product/11.2.0/dbhome_1/bin/lsnrctl /bin
cp /home/ora_user/tools/oracle11g/product/11.2.0/dbhome_1/bin/sqlplus /bin
cp /home/ora_user/tools/oracle11g/product/11.2.0/dbhome_1/bin/emctl /bin
cp /home/ora_user/tools/oracle11g/product/11.2.0/dbhome_1/bin/dbca /bin
3、startup报错:
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/opt/oracle10g/product/10.2/db_1/dbs/initORA10G.ora
mv /tools/oracle11g/admin/mydb/pfile/init.ora.012009233838(数字随机) /tools/oracle11g/product/11.2/dbhome_1/dbs/initorcl.ora(orcl为我们数据库的实例名)
一些oracle语句:
alteruser xxx identified by password; 给用xxx改成密码password
grantcreate session to username; 赋予这个客户以创建会话的权限。
创建的普通用户没有自己的表空间,还得申请空间,赋予空间和权限才可以有自己的空间。
Createtablespace mydb datafile size 100m;
--创建表空间并分配其大小
createuser zhoushan_test identified by FCDP--为用户分配表空间
defaulttablespace mydb
grant connect,dba,resource toFCDP--给用户分配权限