1.打开bios中的虚拟化支持

启动时根据提示按 Esc 键
按 F10 键以配置 BIOS
使用箭头键滚动到“System Configuration”
选择“Virtualization Technology”,然后按 Enter 键
选择“Enabled”,然后按 Enter 键
按 F10 键以保存并退出
选择“Yes”,然后按 Enter 键
完全关机(关闭电源),等待几秒钟,然后重新启动计算机

2.安装vmware,安装centos 5.4 64位版
3.安装oracle 10g 64版

(1)安装所需的软件包
用光盘安装
yum localinstall  libXp*.el5.i386.rpm  compat-*.el5.i386.rpm  make*.el5.i386.rpm   gcc*.el5.i386.rpm  glibc*.el5.i386.rpm  glibc-*.el5.i386.rpm  setarch*.el5.i386.rpm  libstdc++*.el5.i386.rpm  libaio*.el5.i386.rpm  openmotif*.el5.i386.rpm  el5futils*.el5.i386.rpm  binutils*.el5.i386.rpm  sysstat*.el5.i386.rpm  unix*.el5.i386.rpm --nogpgcheck --skip-broken

rpm -Uvh compat-*.el5.i386.rpm  依赖
rpm -Uvh make*.el5.i386.rpm
rpm -Uvh gcc*.el5.i386.rpm
rpm -Uvh glibc*.el5.i386.rpm
rpm -Uvh glibc-*.el5.i386.rpm
rpm -Uvh setarch*.el5.i386.rpm   not
rpm -Uvh libstdc++*.el5.i386.rpm
rpm -Uvh libaio*.el5.i386.rpm  not
rpm -Uvh openmotif*.el5.i386.rpm 依赖
rpm -Uvh el5futils*.el5.i386.rpm  not found
rpm -Uvh binutils*.el5.i386.rpm
rpm -Uvh sysstat*.el5.i386.rpm
rpm -Uvh unix*.el5.i386.rpm

通过互联网安装
yum install libXp* compat-* make*  gcc* glibc* glibc-* setarch* libstdc++* libaio* openmotif* elfutils* binutils* sysstat* unix*

(2)建立组和用户
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle (ORACLE)

(3)创建目录并赋予权限
mkdir /oracle
chown -R oracle:oinstall /oracle
chmod -R 775 /oracle

(4)修改/etc/redhat-release文件
将CentOS release 5 (Final)  修改成redhat-3

(5)修改内核参数
vi /etc/sysctl.conf
增加如下内容
kernel.shmall = 2097152
kernel.shmmax = 2147483648
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
使更改立即生效,使用下面的命令:
#sysctl -p

(6)设置oracle用户的shell limit
#vi /etc/security/limits.conf     

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

接下来更改/etc/pam.d/login文件,添加下面的内容,使shell limit生效:
#vi /etc/pam.d/login
session required pam_limits.so

(注:如果要写绝对路径,需要指明操作系统,如果是32位的,需要是
session    required     /lib/security/pam_limits.so
如果是64为的需要是
session    required     /lib64/security/pam_limits.so :

(7)vi /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

都修改好了后最好重启动一下系统。或者直接执行 sysctl -p。

(8)配置oracle用户的环境变量
为了防止安装oracle时出现乱码,先把语言环境改为英文
export LC_CTYPE=en_US.UTF-8

编辑/home/oracle目录下的.bash_profile文件,添加如下内容:

export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0.1/db_1
export ORACLE_SID=orcl      (看你要设置的SID是什么,我的是PDBQZ,就将orcl修改为PDBQZ)
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export CLASSPATH

(9)安装oracle
/database
chmod -R 755 database
database]$ ./runInstaller

在这里会遇上一个DISPLAY 尚未设置。请设置 DISPLAY 后重试.
在root用户下xhost +

/etc/oratab is not accessible (root.sh)

先安装数据库
1.选择安装类型,基本安装,不创建数据库,之后再创建数据库实例。
2.指定证书存放目录,因为在.bash_profile的时候,都设置好了,直接点下一步。
3.在这里会检查安装是否符合条件,如果没有什么问题的话,
就只有第一个Checking Network Configuration requirements 要勾选,就出现User Verified ,
直接next进入准备安装界面。
4,开始安装oracle数据库,如果没有什么问题,直接走完,要是有些rpm包没有安装完全,就会出现错误。
出现错误后就检查看是否有是哪个包没有安装。

在安装的过程中会出现要执行的程序。
直接进入下面的目录,运行程序,一切都是默认。
#/oracle/oraInventory/orainstRoot.sh
#/oracle/product/10.2.0/db_1/root.sh

5,单独创建数据库实例,在终端进入opt/oracle/product/10.2.0/db_1/bin目录,然后./dbca   启动创建实例程序。
6,出现创建数据库的界面。
7,默认创建通用数据库。
8,输入要创建数据库实例的名称SID
9,直接默认
10,给数据库实例设置密码,这里直接设置统一的密码,也可以单独设置密码。
11,创建的数据库默认为文件系统,不改变
12,直接默认选项
13,数据库恢复默认选项
14,关于schemas,不管
15,设置内存,大小,字符,连接模式。

字符集选择简体中文,如果没有设置这个,数据库中的中文字符就会出现乱码。

直接默认为Dedicated Server mode 专用的服务器模式。next。下面还有一个All initialization Parameters,可以根据需要初始化有些参数。

16,默认
17,默认创建数据库


[oracle@willie root]$ source oraenv     (这个命令是用来修改SID的)
ORACLE_SID = [oracle] ?PDBQZ   (我的SID是PDBQZ)
bash: /root/.bashrc: Permission denied
重新產生spfile:
SQL> create spfile from pfile;        
将$ORACLE_BASE/admin /数据库名称/pfile目录下的init.ora.012009233838形式的文件copy到$ORACLE_HOME/dbs目录下 initoracle.ora即可。(注:initoracle.ora中的oracle为你的实例名 ORACLE_SID)

 

修改/etc/redhat-release文件
CentOS release 5 (Final)
配置oracle用户的环境变量
#export LC_CTYPE=zh_CN.UTF-8


启动监听和数据库
lsnrctl start
sqlplus /nolog
conn / as sysdba
startup
exit

(10)oracle随机启动

前提准备: 该脚本名为 oracle,  脚本存放位置为:/etc/rc.d/init.d/ , 工作环境仍为; RHEL5.4

1 . 编辑/etc/oratab文件,将对应的sid那一行的N改为Y

     #vi /etc/oratab
     改前例子:
     orcl:/u01/app/oracle/10g:N
     修改后的例子:
     orcl:/u01/app/oracle/10g:Y

2.修改ORACLE自带的启动与关闭脚本,分别是dbstart和 dbshut。
 执行这两个脚本就可以实现ORACLE脚本的启动与关闭。
 在oracle账户下修改$ORACLE_HOME/bin/dbstart文件
 #su -oracle
 $cd $ORACLE_HOME/bin
 $vi dbstart
 找到ORACLE_HOME_LISTNER=$1这一行
 改为:ORACLE_HOME_LISTNER=$ORACLE_HOME
 之所以做这一步,是因为在这个脚本自动生成的时候,也就是ORACLE被安装进RHEL的时候,
 这个脚本并不知道你的ORACLE_HOME_LISTNER是什么,现在要将这个参数显示的写明,
 这样就不会在执行这个脚本的时候报ORACLE_HOME_LISTNER没有被指定的错误了。
 注意:dbstart和dbshut脚本在10g之后就已经将监听器的启动与关闭合并进数据库实例的启动与关闭脚本里面了。而不再是单独分开的了。
 同样的方式,我们也要修改dbshut的这个参数。这里就不再详细写出了,他们在同一个目录下。

3. 在 /etc/rc.d/init.d/ 目录下,创建 oracle 脚本文件,并将如下内容放入脚本中:

     #vi /etc/rc.d/init.d/oracle

     #!/bin/bash
     #whoami
     #root
     #chkconfig:345 51 49
     #description:Oracle
     #/etc/rc.d/init.d/oracle

     ORACLE_BASE=/u01/app/oracle
     ORACLE_HOME=$ORACLE_BASE/10g
     ORACLE_SID=orcl

     case "$1" in
     start)
            echo -n "Starting Oracle10g:"
            su - oracle -c dbstart >>$ORACLE_HOME/log/autostart.log
            su - oracle -c "lsnrctl start" >>$ORACLE_HOME/log/autostart.log
            su - oracle -c "emctl start dbconsole" >>$ORACLE_HOME/log/autostart.log
            touch /var/lock/subsys/oracle
            ;;
     stop)
            echo -n "Shutting Down Oracle10g:"
            su - oracle -c "emctl stop dbconsole" >>$ORACLE_HOME/log/autostart.log
            su - oracle -c "lsnrctl stop" >>$ORACLE_HOME/log/autostart.log
            rm -f /var/lock/subsys/oracle
            su - oracle -c dbshut >>$ORACLE_HOME/log/autostart.log
            ;;
     restart)
            echo -n "Restarting Oracle10g:"
            su - oracle -c dbshut >>$ORACLE_HOME/log/autostart.log
            su - oracle -c dbstart >>$ORACLE_HOME/log/autostart.log
            su - oracle -c "lsnrctl stop" >>$ORACLE_HOME/log/autostart.log
            su - oracle -c "lsnrctl start" >>$ORACLE_HOME/log/autostart.log
            su - oracle -c "emctl stop dbconsole" >>$ORACLE_HOME/log/autostart.log
            su - oracle -c "emctl start dbconsole" >>$ORACLE_HOME/log/autostart.log
            touch /var/lock/subsys/oracle
            ;;
     *)
            echo "Usage: oracle {start|stop|restart}"
            exit 1
     esac
     exit 0

注:请务必保留脚本前面带# 号部分,要不在脚本加入启动服务的时候会有错误,无法加入。

4. 将该脚本设置为可执行文件,并运行测试

    # chmod a+x /etc/rc.d/init.d/oracle
    # /etc/rc.d/init.d/oracle stop

    如有错误,请再次检查脚本是否完整 ,该脚本的执行日志将会被放在 $ORACLE_HOME/log/autostart.log

5. 建立连接并加入到linux 启动服务

    建立连接:
    #ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc5.d/S99oracle
    加入启动服务:
    #chkconfig --add oracle
    检查是否成功加入:
    #chkconfig --list oracle
    oracle          0:off   1:off   2:off   3:on    4:on    5:on    6:off
    此时已经成功加入。

到此,该脚本已经结束

(11)使用plsql developer连接
oracle目录listener.ora,tnsnames.ora
windows客户端目录\network\admin\tnsnames.ora

(12)创建用户和表空间
 用户stl_usr 表空间settle
 
 
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/oracle/oradata/WILSON/system01.dbf
/oracle/oradata/WILSON/undotbs01.dbf
/oracle/oradata/WILSON/sysaux01.dbf
/oracle/oradata/WILSON/users01.dbf

SQL> drop tablespace SETTLEDATA including contents and datafiles;

SQL> create tablespace SETTLEDATA
  2  logging
  3  datafile '/oracle/oradata/WILSON/settledata.dbf'
  4  size 32m
  5  autoextend on
  6  next 32m maxsize 10240m
  7  extent management local;

Tablespace created.

SQL> drop user stl_usr cascadde;
drop user stl_usr cascadde
                  *
ERROR at line 1:
ORA-00921: unexpected end of SQL command


SQL> drop user stl_usr cascade;
drop user stl_usr cascade
          *

SQL> create user stl_usr identified by stl_usr
  2  default tablespace SETTLEDATA;

User created.

SQL> grant dba,connect,resource,CTXAPP,create view to stl_usr;

Grant succeeded.

(13)导出导出数据
导出步骤:
1 tools ->export user object 选择选项,导出.sql文件
2 tools ->export tables-> plsql Export 选择选项导出.pde文件

导入步骤:
1 tools->import tables->SQL Inserts 导入.sql文件
2 tools->import talbes->plsql Import然后再导入pde文件
数据库的导入导出成功

(14)proc编译环境
将.bash_profile下的一些变量拷贝粘贴到/etc/profile

ansi c 和posix c的问题
pcscfg.cfg中的include路径,缺-stddef.h等文件找不到,多-pcc-cf-02081错误


mysql安装和数据导入
编译是找不到mysql.h
/usr/include/mysql

[root@localhost com]# make
make: *** 没有规则可以创建“/com/obj/common.c”需要的目标“/com/common.pc”。 停止。
JSDEV_MAIN=/settle/jsdev

mysql.sock

换行符
dos2unix的问题
-----批量转换
在Linux中将DOS 格式转换为Unix格式的文件可以使用dos2unix,如果一个文件夹中有多个文件需要转换,则可以使用如下命令:
find -type f | xargs dos2unix --dos2unix --safe
或者
find -type f | xargs dos2unix -o
用dos2unix --help可以查看各参数表示的含义。


--------------
gcc: -lmysqlclient:未使用链接器输入文件,因为链接尚未完成

类似/usr/bin/ld: cannot find -xxxx的错误有很多, 首先我们可以最简单的判断一下:
这类情况一般是由于缺乏某某库文件, 又或者可能是由于已存在的库问题版本不对造成的
一般都是解决的办法就是安装缺乏的devel包就可以解决, 当然还有其他的未知因素, 我们看一个实例:
我在一台装centos5.2 x86_64的系统上配置php环境, 提示这个错误
"/usr/bin/ld: cannot find -lmysqlclient"
于是我安装了
#  yum -y install mysql-devel
结果提示依旧, 我根据提示查看config.log
    /usr/bin/ld: skipping incompatible /usr/local/mysql/lib/libmysqlclient.so when searching for -lmysqlclient
    /usr/bin/ld: skipping incompatible /usr/local/mysql/lib/libmysqlclient.a when searching for -lmysqlclient
    /usr/bin/ld: cannot find -lmysqlclient
她还是去找/usr/local/mysql/lib/libmysqlclient.so, 我来把这个错的换成对了, 刚才装了mysql-devel, 那么在/usr/lib64下就多了一个mysql的目录
# cd /usr/local/mysql
# mv lib lib.bak
# ln -s /usr/lib64/mysql /usr/local/mysql/lib (给他做个软链接)
然后再次编译安装php, 一切正常!

 

/usr/bin/ld: cannot find -leci

 

 

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐