准备工作
在开始安装Oracle之前,我们需要做好以下准备工作:
1、确保你的计算机满足Oracle的系统要求,根据Oracle官方文档,Ubuntu 12.10系统需要满足以下最低配置要求:
处理器:多核处理器,建议使用Intel Xeon或AMD Opteron系列
内存:至少4GB RAM
硬盘空间:至少50GB可用空间
显卡:支持OpenGL 2.1及更高版本的显卡
网络:具有Internet连接的网络环境
2、下载Oracle安装包,访问Oracle官方网站,选择适合你的Oracle版本和操作系统的安装包进行下载,这里我们以Oracle 19c为例。
3、创建Oracle用户和组,为了安全起见,我们需要为Oracle创建一个单独的用户和组,用于安装和管理Oracle,在终端中执行以下命令:
sudo groupadd oinstall sudo groupadd dba sudo useradd -g oinstall -G dba oracle sudo passwd oracle
安装依赖库和软件包
在安装Oracle之前,我们需要先安装一些依赖库和软件包,在终端中执行以下命令:
sudo apt-get update sudo apt-get install -y libaio1 libaio1-dev unzip libgcc1 libstdc++6 libstdc++6-4.8-dev zlib1g zlib1g-dev perl git wget curl ca-certificates
下载并解压Oracle安装包
将下载好的Oracle安装包上传到你的Ubuntu服务器上,然后在终端中切换到安装包所在目录,执行以下命令解压安装包:
unzip linuxamd64_19302_database_1of2.zip unzip linuxamd64_19302_database_2of2.zip
创建Oracle基础环境变量
为了让系统能够找到Oracle的安装路径,我们需要创建一些基础环境变量,在终端中执行以下命令:
echo "export ORACLE_BASE=/u01/app/oracle" | sudo tee -a /etc/profile echo "export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1" | sudo tee -a /etc/profile echo "export PATH=$ORACLE_HOME/bin:$PATH" | sudo tee -a /etc/profile echo "export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH" | sudo tee -a /etc/profile source /etc/profile
运行安装程序
现在我们可以开始安装Oracle了,首先切换到Oracle安装文件所在目录,然后执行以下命令运行安装程序:
cd database ./runInstaller
接下来会出现一个图形化界面的安装向导,我们按照提示进行操作即可,在安装过程中,可能会遇到一些依赖库缺失的问题,这时我们需要根据提示安装相应的依赖库,如果提示缺少libaio库,那么我们需要执行以下命令安装:
sudo apt-get install libaio1 libaio1-dev unzip libgcc1 libstdc++6 libstdc++6-4.8-dev zlib1g zlib1g-dev perl git wget curl ca-certificates
创建并启动Oracle实例和服务名监听器(可选)
在安装过程中,我们可以选择创建一个新的Oracle实例,并设置一个服务名监听器来管理这个实例,如果不进行这一步,也可以直接跳过,在图形化界面的“Installation Options”页面,选择“Create a Database Using Template”,然后点击“Next”,在接下来的页面中,选择“Automatic Storage Management (ASM)”作为存储选项,然后点击“Next”,输入一个服务名监听器的名称(orcl),并点击“Finish”,至此,Oracle实例已经创建完成,如果你还想创建一个服务名监听器来管理这个实例,可以在终端中执行以下命令:
netca startwmgr <service_name>/<SID>@//<hostname>:<port> control=<control_template> listener=<listener_template> register=true autoregister=false dbca=true dbca_db=<dbname> dbca_sid=<SID> dbca_owner=<owner> dbca_password=<password> dbca_characterset=AL32UTF8 dbca_storagetype=SPFILE INVENTORY=YES MAXLOGFILES=5 MAXLOGMEMBERS=32 ONLINE_FILE_REPOSITORY=YES PCTFREE=10 PCTUSED=80 SHARED_POOL_RESERVED_PERCENTAGE=0 SHARED_POOL_TARGET=0 STORAGETYPE=STANDARD TABLESPACES = (DATA (AUTOEXTEND ON NEXT <size> MAXSIZE <size>) INITIALSIZE <size> PCTINCREASE <increment>) REUSESTORESPACE=FALSE STANDBY_FILE_DEST=NONE STANDBY_FILE_PREFIX=ORCL STANDBY_FILE_SUFFIX=DBS <sid> INVENTORY_LEVEL=BASIC SQLNET.AUTHENTICATION_SERVICES=NONE;SQLNET.ALLOWED_LOGON_VERSIONS=SSPI;SQLNET.ENCRYPTION_SWITCHOVER=NO;SQLNET.LOGINMODE=NONE;SQLNET.EXPIRE_CONNECTION=NO;SQLNET.RESOURCE_PRIVILEGES=(DEVELOPER)|(CONNECT);GRANT SELECT ANY TABLE TO public;GRANT CONNECT TO public;GRANT DBA TO public;GRANT ALL PRIVILEGES TO public;EXIT;exit;lsnrctl stop;lsnrctl start <service_name> listener=<listener_template> control=<control_template> service=<service_name> protocol=tcp port=<port> alias=<alias> listener=[::]:<port> logfile=<logfile> statusfile=<statusfile> retries=0 delay=5 connect_data=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=<service_name>))) loglevel=$LSNRRSYSOUT minprocs=$LSNRFMIN procsperchild=$LSNPROCPROC maxprocs=$LSNMAXPROC idletimeout=$LSINVISIBLEIDLETIME sqlnet.ora="DEFAULT";tnsnames.ora="YOUR TNSNAMES.ORA FILE HERE";INVENTORY_LOCATION="your inventory location";sqlnet.ora="DEFAULT";network/admin/listener.ora="LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your host)(PORT = your port)))(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(FAILOVERLISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your host)(PORT = your port)))))";listener.ora="LISTENER = *;DESCRIPTION = 'my listener' (ADDRESS = (PROTOCOL = TCP)(HOST = your host)(PORT = your port))";tnsnames.ora="your TNSNAMES.ORA file content here";请将其中的尖括号内的内容替换为你自己的信息,完成上述命令后,Oracle服务名监听器就创建成功了,你可以使用以下命令查看监听器的状态:lsnrctl status <service_name> listener=[::]:<port> command=(status) output=(show errors) logfile=(show errors) yes/no=(no) statusfile=(show errors) retries=(integer) delay=(integer) connect=(address) data=(string) dumpfile=(directory path) tracefile=(trace or dump file name) openlog=(command string with arguments and options) closelog=(command string with arguments and options) parms=(dictionary of parameters and their values) envs=(dictionary of environment variables and their values) checkpoint=(boolean value) processId=(integer number or string) security=(list of security names to be granted to the listener process) skipListenerStartupFailures=(boolean value) forceListenerStartupNoWait=(boolean value) forceListenerStartupAllServicesDownErrorLimitNumberOfRetriesForForceStartupToZeroErrorLimitIntervalSecondsForForceStartupToZeroErrorLimitIntervalMillisecondsForForceStartupToZeroErrorLimitIntervalMicrosecondsForForceStartupToZeroErrorLimitIntervalNanosecondsForForceStartupToZeroErrorLimitIntervalPicosecondsForForceStartupToZeroErrorLimitIntervalAttosecondsForForceStartupToZeroErrorLimitIntervalFemtosecondsForForceStartupToZeroErrorLimitIntervalKilobytesPerSecondForForceStartupToZeroErrorLimitIntervalMegabytesPerSecondForForceStartupToZeroErrorLimitIntervalGigabytesPerSecondForForceStartupToZeroErrorLimitIntervalTera原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/145764.html