本人也刚开始学oracle,本文很多信息来源于其他博客,感谢他们!
一、安装并配置vmware虚拟机
1、安装vmware workstation 7.1 2、新建虚拟机
1 选典型设置typical
2 点以后安装系统
3 点linux 选择Red Hat Enterprise Linux 5
4 选择路径下一步
5 选择“使用网络地址翻译”
6 设置硬盘大小并当作单个硬盘(30G)
7 完成
2、编辑虚拟机
1内存 --> 2048 M 2G
2CPU --> 双核改为2
3光盘 --> 选择 ISO 镜像linux 5安装文件
4软盘 --> 删除
3、选择安装oracle所需要的系统组件
1选择软件开发“Software Development”
2选择“现在定制now”
3选择“Development”下的Development Libraries 开发库一定要装全选 Development Tools 开发工具一定要装全选 Legacy Software Development 老的软件开发包全选 “Base System” 下的Legacy Software Support 老的软件支持 全选
4、重启虚拟机进入linux的设置关闭防火墙和Selinux策略不进行产品注册不新建帐号完成
5、安装vmware 工具为了便于鼠标的操作和屏幕分辨率的设置
二、设置环境变量(32位环境)
1、验证硬件
略
2、验证安装包
某些必需的程序包依赖于其他程序包,因此依赖程序包也必须安装。以 root 身份登录,运行下面的命令,以安装其余的必需程序包及它们依赖的程序包:
加载 CD 2
cd cd_mount_point/Server
rpm -ivh compat-libstdc++-33* elfutils-libelf-devel* glibc-devel-2* glibc-headers-2* gcc-4* libgomp-4* gcc-c++-4* libaio-devel* libstdc++-devel-4* unixODBC*
加载 CD 3
cd cd_mount_point/Server
rpm -ivh sysstat*
运行下面的命令,验证所需的程序包已安装到您的系统上:
rpm -q compat-libstdc++-33 elfutils-libelf-devel glibc-devel-2.5 gcc gcc-c++ libaio-devel libstdc++-devel \unixODBC unixODBC-devel sysstat binutils elfutils-libelf glibc glibc-common libaio libgcc libstdc++ make
ps:64位环境请参考其他文章
3、配置oracle环境
创建 Oracle 组和用户帐户
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -m -g oinstall -G dba oracle //–g oinstall 是表示oracle用户的初始组为oinstall;-G dba 是表示oracle用户同时属于dba组,进行数据维护和数据库管理工作。
# id oracle
uid=501(oracle) gid=502(oinstall) groups=502(oinstall),503(dba)
设置 oracle 帐户的口令:
# passwd oracle
以下假设在根文件系统中创建目录。这样做是为了简便起见,不建议将其作为通用做法。这些目录通常被创建为单独的文件系统。
以 root 用户身份执行以下命令:
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app
chmod -R 775 /u01/app
配置 Linux 内核参数
参照oracle在linux下的安装文档进行大体如下:
# cat >> /etc/sysctl.conf <<EOF
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
> EOF
要使 /etc/sysctl.conf 更改立即生效,执行以下命令。 输入:sysctl -p
# /sbin/sysctl -p
为 oracle 用户设置 Shell 限制
Oracle 建议对每个 Linux 帐户可以使用的进程数和打开的文件数设置限制。要进行这些更改,以 root 用户的身份执行下列命令:
cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
cat >> /etc/pam.d/login <<EOF
session required /lib/security/pam_limits.so
session required pam_limits.so
EOF
修改 bash 和 ksh 的默认配置文件以及 cshell 的默认登录脚本。
cat >> /etc/profile <<EOF
if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF
cat >> /etc/csh.login <<EOF
if ( \$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
EOF
三、正式安装oracle
网上有很多资料参考,如下(感谢这些作者):
http://wenku.baidu.com/view/b289cfc29ec3d5bbfd0a7495.html
http://www.cnblogs.com/zhangyongli2011/archive/2012/04/04/2431953.html
http://wenku.baidu.com/view/87d69a28453610661ed9f4fe.html?from_page=view&from_mod=copy_login
http://hi.baidu.com/ooombnocgzbekoq/item/338ccf83fece5e55e73d1900
其他问题:
一 、乱码问题解决
*****************************************************************
* 更改字符集步骤方法(WE8ISO8859P1 --> ZHS16GBK) *
*****************************************************************
SQL>
将数据库启动到RESTRICTED模式下做字符集更改:
SQL> conn /as sysdba
Connected.
SQL> shutdown immediate;
Database closed.
Database dismounted.
orACLE instance shut down.
SQL> startup mount
orACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
SQL> Alter SYSTEM ENABLE RESTRICTED SESSION;
System altered.
SQL> Alter SYSTEM SET JOB_QUEUE_PROCESSES=0;
System altered.
SQL> Alter SYSTEM SET AQ_TM_PROCESSES=0;
System altered.
SQL> alter database open;
Database altered.
SQL> Alter DATABASE CHARACTER SET ZHS16GBK;
Alter DATABASE CHARACTER SET ZHS16GBK
*
ERROR at line 1:
orA-12712: new character set must be a superset of old character set
提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:
SQL> Alter DATABASE character set INTERNAL_USE ZHS16GBK;
Database altered.
SQL> select * from v$nls_parameters;
略
19 rows selected.
重启检查是否更改完成:
SQL> shutdown immediate;
Database closed.
Database dismounted.
orACLE instance shut down.
SQL> startup
orACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
SQL> select * from v$nls_parameters;
略
19 rows selected.
查询数据库字符集
select * from V$NLS_PARAMETERS
......
NLS_LANGUAGESIMPLIFIED CHINESE
......
.bash_profile中加入下面内容
export NLS_LANG="SIMPLIFIED CHINESE".ZHS16GBK
修改终端编码为简体中文
终端--->设定字符编码--->简体中文
二、错误:“shared memory realm does not exist”
(1)、 创建一个Oracle实例(非安装阶段)
(2)、 由实例安装数据库(安装阶段)
(3)、 打开数据库(打开阶段)
下面从实验的角度来实践这三个阶段:
Step one:以具有Oracle 管理员权限的用户登陆
sqlplus命令
sqlplus /nolog
conn USER/PASSWORD as sysdba
Step two:创建一个Oracle实例(非安装阶段)
sqlplus命令
startup nomount
如上所示:NONOUNT选项仅仅创建一个Oracle实例。读取init.ora初始化参数文件、启动后台进程、初始化系统全局区(SGA)。Init.ora文件定义了实例的配置,包括内存结构的大小和启动后台进程的数量和类型等。当实例打开后,系统将显示一个SGA内存结构和大小的列表
Step three: 由实例安装数据库(安装阶段)
命令:
alter database mount;
该命令创建实例并且安装数据库,但没有打开数据库。Oracle系统读取控制文件中关于数据文件和重作日志文件的内容,但并不打开该文件。
Step four:打开数据库(打开阶段)
命令:
alter database mount;
该命令完成创建实例、安装实例和打开数据库的所有三个步骤。此时数据库使数据文件和重作日志文件在线,通常还会请求一个或者是多个回滚段。这时系统除了可以看到前面Startup Mount方式下的所有提示外,还会给出一个"数据库已经打开"的提示。此时,数据库系统处于正常工作状态,可以接受用户请求。
Note that:
当然可以用用一条命令打开
startup
三、plsql不安装客户端远程连接oracle
在本机用plsqldevelopment等工具连接虚拟机oracle学习
1、下载敏捷客户端InstantClient
http://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html
2、下载安装PLSQL(16M左右):http://www.onlinedown.net/soft/4902.htm
3、解压
instantclient-basic-win32-11.2.0.1.0.zip 到新建文件夹,
如 D:/oracleclient/instantclient_11_2 用文本文档创建tnsnames.ora ,内容大致如下:
# TNSNAMES.ORA Network Configuration File: /opt/oracle/product/9204/network/admin/tnsnames.ora
# Generated by Oracle configuration tools. //以上为注释内容,因为我的tnsnames.ora是直接从服务器上download的
HSSL = //将此处的HSSL修改为您实际的数据库实例名
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.154.11)(PORT = 1521)) //IP和端口
)
(CONNECT_DATA =
(SERVICE_NAME = hssl) //将此处的HSSL修改为您实际的数据库实例名
)
)
用文本文档创建sqlnet.ora ,内容如下:
NAMES.DIRECTORY_PATH= (TNSNAMES)
SQLNET.AUTHENTICATION_SERVICES= (NTS)
到我的电脑、属性、高级、环境变量中添加一个环境变量,变量名为TNS_ADMIN,值为tnsnames.ora文件所在路径, 例如:D:/oracleclient/instantclient_11_2
4、安装完毕PLSQL后,启动,cancel,依次点击Tools->Preferences->Connection:
Oracle Home=D:/oracleclient/instantclient_11_2OCI library=D:/oracleclient/instantclient_11_2/oci.dll
重新启动PLSQL即可进入数据库,初次登陆可能存在中文乱码的问题,解决方法如下:
新建bat命令
set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
Plsqldev.exe
5、PLsql登录oracle数据 报 “ora-12541:TNS:无监听程序”错误
[O[racl@192~]$lsnrctl
LSNRCTL> start