我建议将安装文件放在windows的盘符下,共享文件夹,通过mount -t smbfs方式来让linux访问windows下共享的文件夹来进行安装,对虚拟
下载,准备
我建议将安装文件放在windows的盘符下,共享文件夹,通过mount -t smbfs方式来让linux访问windows下共享的文件夹来进行安装,对虚拟linux来说,就不需要占用那么大的空间.
需要保证虚拟就机linux和windows之间的网络畅通,用root用户给linux设置ip地址,方法:root登录图形界面,"开始菜单"->"system settings"->"network"
虚拟linux磁盘空间8G以上,linux 2.8G,oracle 2.85G,数据库2G;
虚拟机内存,我自己安装分配了512M,速度还比较块,我看别人用256M,很慢.
如果上面的具备了,可以进行下面的步骤了.
环境配置,安装
1)添加用户组,用root用户登录
groupadd orainstall
groupadd oradba
groupadd oraoper
useradd ora -G orainstall,oradba
可以根据自己的情况用不同的用户名字和组,根据自己喜好.
2)切换到root用户
vi /etc/sysctl.conf
然后在最后添加一行
kernel.shmmax = 261986254
如果遗漏这步,安装的最后一步会报ORA-27123: unable to attach to shared memory segment错误.
3)在.bash_profile中添加环境变量
然后用ora用户登录,在该文件中添加如下的内容:
#ORACLE
export LD_ASSUME_KERNEL=2.4.1
export ORACLE_BASE=/home/ora/ora9
export ORACLE_HOME=/home/ora/ora9/oracle
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
#NoUse
export ORACLE_SID=linuxdb
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.US7ASCII
#LIB,CLASS
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
export PATH=$PATH:$ORACLE_HOME/bin
CLASSPATH=$CLASSPATH:$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export CLASSPATH
修改.bash_profile之后,重新登录,或者source .bash_profile就可以是上面配置的环境变量生效.
4)解压缩文件
在windows下,将存放安装文件的文件夹oracle共享,设置共享权限为可读可写,然后执行如下命令:
mount -t smbfs -o username=cl,password=chenli,ip=192.168.1.100 -l //chenli/oracle /home/ora/setup
命令解释:
上面命令中,username=cl,password=chenli中cl是windows用户,chenli是cl用户的密码
ip=192.168.1.100 中192.168.1.100 是windows主机的ip地址
//chenli/oracle 中,chenli是windows主机的主机名,oracle是共享文件夹
/home/ora/setup 是linux下的目录路径,必须存在,可以根据自己的需要,设定不同的路径.
解压文件,顺序执行下面的命令:
cd /home/ora/setup
gunzip ship_9204_linux_disk1.cpio.gz
gunzip ship_9204_linux_disk2.cpio.gz
gunzip ship_9204_linux_disk3.cpio.gz
cpio -idmv cpio -idmv cpio -idmv 执行完了之后,会出现Disk1,Disk2,Disk3三个目录
5)安装
用ora用户登录到linux的图形化界面
进入/home/ora/setup/Disk1目录
执行./runInstaller
注意,有些时候显示的安装界面是乱码的,我的Red Hat linux 9的简体中文版,安装程序都是英文的,这个时候可以通过执行如下命令来解决问题:
export LC_ALL=C
export LANG=C
然后再执行./runInstaller就不会有乱码了.
错误总结:
我在安装过程中出现了一些问题,在这儿跟大家分享.
1)弹出对话框,显示错误信息:thrown when the ip address of a host cannot be determined
这时候需要用root用户打开/etc/hosts 编辑该文件,ip地址和主机名字的对应关系,尽量简单,在第二列,即主机名列,不要出现ip地址形式x.x.x.x的主机名
2)在安装的最后,安装agent工具的时候出现如下的错误信息:
Parameter "orahome" = /oracle/product/9.2.0
Parameter "nodeinfo" = NO_VALUE
Agent Service Failed
这个问题是没有打补丁引起的,不过该问题不会影响到数据库的使用,只是agent工具不可用.
下载p2617419_220_GENERIC.zip p3006854_9204_LINUX.zip p3238244_9204_LINUX.zip
然后安装,需要重新执行oracle的安装./runInstaller,所以最好在安装前打一下这个补丁.
启动数据库
用ora用户登录linux
首先执行命令:sqlplus "/ as sysdba"
显示SQL>执行命令startup,启动数据库;执行shutdown,关闭数据库.
启动监控程序,在普通命令行下执行如下命令
lsnrctl start 启动监控
lsnrctl stop 停止监控
使用数据库
用ora用户登录主机
执行sqlplus "/as sysdba" 以系统dba的身份登录数据库.
然后创建表空间,创建用户,给用户授予权限
1)然后创建表空间
create tablespace devbase
datafile '/home/ora/tbspace/devbase_20080121.dbf' size 500M
autoextend on
next 100M
maxsize 1000M;
要确保/home/ora/tbspace目录存在,有权限,足够的空间存放表空间文件
2)创建用户
create user dev
identified by dev123
default tablespace devbase
temporary tablespace temp;
创建用户dev,密码是否dev123,默认表空间为devbase
注意,这个时候还不能用dev登录数据库,因为dev用户还没有create session,connect,resource权限,还不能登录;
3)给用户授予权限
grant resource,connect to dev;
grant create session to dev;
grant create table to dev;
grant create tablespace to dev;
grant create view to dev;
这时你可以用dev用户进行登录了.
4)修改用户密码
用sys或者system用户登录,执行如下的sql修改用户密码
alter user dev identified by chenli;
最后还因为注意一个小问题,修改ORACLE_HOME/network/admin/tnsnames.ora,将配置该文件中所有HOST的值,全部由ip地址替换,这样在登录数据库的过程总,减少了主机名字=>ip地址的解析过程,有些时候,会提高一下登录的速度.
在普通linux用户下建立开发环境
配置环境变量,搜索路径中可以找到oracle程序.
vi .bash_profile 添加如下的配置
#oracle
export ORACLE_BASE=/home/ora/ora9
export ORACLE_HOME=/home/ora/ora9/oracle
export ORACLE_SID=linuxdb
export ORACLE_TERM=xterm
#LD_LIBRARY_PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/local/lib:$ORACLE_HOME/rdbms/demo
PATH=$PATH:/usr/bin:/usr/sbin:/usr/local/bin:.
PATH=$PATH:$ORACLE_HOME/bin
export PATH
建立普通用户在路径$ORACLE_HOME/bin,$ORACLE_HOME/include,$ORACLE_HOME/lib上所有目录的xr读执行权限,这样该登录用户才能使用$ORACLE_HOME/bin目录下的一些oracel程序.并且要保证在开发过程中,可以使用oracle下的头文件,库文件.
1)创建seq对象
create sequence SEQ_STAFF_ID
minvalue 1
maxvalue 9999999
start with 1
increment by 1
cache 20;
2)创建表
create table staff_info
(
staff_id number(10),
staff_name varchar2(20),
addr varchar2(200)
);
ok,一个基本的oracle数据库就可以使用了.
注意的问题:
很早以前写的安装文档
1.确保RPM开发包,使用下面命令查看是否已安装这些包
rpm -q gcc cpp compat-libstdc++ glibc-devel glibc-kernheaders binutils
2.Oracle官方网站下载Oracle9i安装文件为:Linux9i_Disk1.cpio.gz,Linux9i_Disk2.cpio.gz,Linux9i_Disk3.cpio.gz
三个文件,进行解压,,
zcat Linux9i_Disk1.cpio.gz | cpio -idmv
zcat Linux9i_Disk2.cpio.gz | cpio -idmv
zcat Linux9i_Disk3.cpio.gz | cpio -idmv
然后有Disk1 Disk2 Disk3三个目录
3.设置内核参数
vi /etc/sysctl.conf,加入下面参数
kernel.shmmax=4294967295 内存512M
计算方法为:kernel:shmmax=1024*1024*RAM(M)/2
或者
编辑/etc/sysctl.conf
kernel.shmmax=4294967295
以上为512MB内存,所以设置这个数值。可根据实际情况设置。
这个shmmax是定义共享内存段的最大尺寸参数shmmax建议的设定值为物理内存的一半
执行sysctl -p生效
4.修改oracle用户能够打开的文件总数
vi /etc/security/limits.conf
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
4.建立数据目录和用户
以root的身份,使用groupadd命令增加dba组;
#groupadd dba
对于Oracle9i,还需要增加oinstall组,用来分配在数据仓库中安装软件的权限
#groupadd oinstall
对于oracle9i,使用oinstall和dba组作为默认组创建oracle账号
#useradd -g oinstall -G dba oracle
设置Oracle账号的口令
#passwd oracle
为Oracle建立的相应目录
#mkdir /opt/oracle
#mkdir /opt/oracle/product
#mkdir /opt/oracle/product/9.2.0
为使Oracle账号在安装期间使用这些安装位置,必须具有适当的权限。将安装位置的所有权限更改为Oracle账号。
#chown -R oracle.oinstall /opt/oracle
#mkdir /var/opt/oracle
#chown oracle.dba /var/opt/oracle
#chmod 755 /var/opt/oracle
5.使用oracle账号的.bash_profile插入下列环境变量
vi .bash_profile 设置变量
export LD_ASSUME_KERNEL=2.4.1
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/9.2.0
export ORACLE_SID=ora9
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
export PATH=$PATH:$ORACLE_HOME/bin
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export CLASSPATH
(1)export TNS_ADMIN=$ORACLE_HOME/network/admin
这样设置不会频频遭遇监听报错
重新用oracle用户登录,环境就可以生效

MySQL和SQLite的主要區別在於設計理念和使用場景:1.MySQL適用於大型應用和企業級解決方案,支持高性能和高並發;2.SQLite適合移動應用和桌面軟件,輕量級且易於嵌入。

MySQL中的索引是數據庫表中一列或多列的有序結構,用於加速數據檢索。 1)索引通過減少掃描數據量提升查詢速度。 2)B-Tree索引利用平衡樹結構,適合範圍查詢和排序。 3)創建索引使用CREATEINDEX語句,如CREATEINDEXidx_customer_idONorders(customer_id)。 4)複合索引可優化多列查詢,如CREATEINDEXidx_customer_orderONorders(customer_id,order_date)。 5)使用EXPLAIN分析查詢計劃,避

在MySQL中使用事務可以確保數據一致性。 1)通過STARTTRANSACTION開始事務,執行SQL操作後用COMMIT提交或ROLLBACK回滾。 2)使用SAVEPOINT可以設置保存點,允許部分回滾。 3)性能優化建議包括縮短事務時間、避免大規模查詢和合理使用隔離級別。

選擇PostgreSQL而非MySQL的場景包括:1)需要復雜查詢和高級SQL功能,2)要求嚴格的數據完整性和ACID遵從性,3)需要高級空間功能,4)處理大數據集時需要高性能。 PostgreSQL在這些方面表現出色,適合需要復雜數據處理和高數據完整性的項目。

MySQL數據庫的安全可以通過以下措施實現:1.用戶權限管理:通過CREATEUSER和GRANT命令嚴格控制訪問權限。 2.加密傳輸:配置SSL/TLS確保數據傳輸安全。 3.數據庫備份和恢復:使用mysqldump或mysqlpump定期備份數據。 4.高級安全策略:使用防火牆限制訪問,並啟用審計日誌記錄操作。 5.性能優化與最佳實踐:通過索引和查詢優化以及定期維護兼顧安全和性能。

如何有效監控MySQL性能?使用mysqladmin、SHOWGLOBALSTATUS、PerconaMonitoringandManagement(PMM)和MySQLEnterpriseMonitor等工具。 1.使用mysqladmin查看連接數。 2.用SHOWGLOBALSTATUS查看查詢數。 3.PMM提供詳細性能數據和圖形化界面。 4.MySQLEnterpriseMonitor提供豐富的監控功能和報警機制。

MySQL和SQLServer的区别在于:1)MySQL是开源的,适用于Web和嵌入式系统,2)SQLServer是微软的商业产品,适用于企业级应用。两者在存储引擎、性能优化和应用场景上有显著差异,选择时需考虑项目规模和未来扩展性。

在需要高可用性、高級安全性和良好集成性的企業級應用場景下,應選擇SQLServer而不是MySQL。 1)SQLServer提供企業級功能,如高可用性和高級安全性。 2)它與微軟生態系統如VisualStudio和PowerBI緊密集成。 3)SQLServer在性能優化方面表現出色,支持內存優化表和列存儲索引。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver Mac版
視覺化網頁開發工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。