web-dev-qa-db-ja.com

Ubuntu 12.04にOracle 12c R2をインストールする

UbuntuへのOracle 12cリリース2のインストールは、サポートされているディストリビューションではないため失敗します。とにかくインストールする方法は?

6
fjalvingh

通常どおり、インストールファイルをダウンロードして解凍します。

Oracle、dba、およびoinstallユーザーを作成します。

Sudo groupadd oinstall
Sudo groupadd dba
Sudo useradd -g oinstall -G dba,oinstall -s /bin/bash -m -d /home/Oracle oracle

以下のパラメーターを/etc/sysctl.confに追加します。

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 3355443
kernel.shmmax = 17179869184
kernel.shmmni = 4096

# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576

上記は32GBマシン用です。金額が異なる場合は、次を設定します。

  • shmmax =(バイト単位のメモリ/ 2)

次に、インストールを完了するために必要なパッケージのセットをインストールします。パッケージを更新することから始めます。

Sudo apt update

次に、以下をインストールします。

Sudo apt install libc6-i386 \
gcc-multilib g++-multilib libc6-dev-i386 libstdc++6:i386 \
alien autoconf automake autotools-dev elfutils rpm rpm-common \
build-essential debhelper expat gawk gsfonts-x11 html2text sysstat \
unixodbc unixodbc-dev doxygen ksh openssh-server pax Perl-doc rlwrap \
lsb lsb-core zlibc \
lib32z1-dev lib32ncurses5 libaio1 libaio-dev \
libelf-dev libodbcinstq4-1 libpth-dev libpthread-stubs0-dev \
libpthread-workqueue0 libpthread-workqueue-dev \
libtiff5-dev libzthread-dev libqt4-opengl:i386 libodbcinstq4-1:i386 \
libglu1-mesa:i386 libxtst6:i386 libxtst6

Sudo apt-get install -s cabextract
Sudo add-apt-repository ppa:nilarimogard/webupd8
Sudo apt update
Sudo apt install wimtools libwim-dev
Sudo apt install -s libbz2-dev:i386

インストールが必要とする場所で必要なファイルを見つけることができるように、いくつかのソフトリンクを作成します。

Sudo ln -s /usr/bin/basename /bin/basename
Sudo ln -s bin/bash /usr/bin/bash
Sudo ln -s /usr/bin/rpm /bin/rpm
Sudo ln -s /usr/bin/awk /bin/awk
Sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
Sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /lib64/libstdc++.so.6
Sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/libgcc_s.so.1
Sudo ln -s /usr/lib/i386-linux-gnu/libpthread_nonshared.a /usr/lib/libpthread_nonshared.a
Sudo ln -s /lib/lsb/init-functions /etc/init.d/functions
Sudo ln -sf /bin/bash /bin/sh

通常、次のように、アカウント「Oracle」で実行されているOracleインストーラーを起動します。

xhost +
Sudo su - Oracle
cd /path/to/unzipped/files/database
./runInstaller

データベースをインストールしますが、インストール中にnotを作成します!

しばらくすると、インストール時にリンク時にエラーが発生します。画面にエラーメッセージを残し、ターミナルを開いてファイル$ Oracle_HOME/bin/oraldを編集します。はじめに、読んでいる部分を見つけます。

if [ -z "$BASH_VERSION" -o -n "$ORALD_USE_GCC" ] ; then
  exec gcc "$@"
  exit 1
fi

gcc行を次のように変更します。

exec gcc -no-pie "$@"

(-no-pieオプションは単一のダッシュで始まります)。

次に、次のスクリプトをファイル、たとえば/ tmp/fixoraにコピーします。

#!/bin/bash

# Change the path below to point to your installation
export Oracle_HOME=/opt/Oracle/12cr2

Sudo ln -s $Oracle_HOME/lib/libclntshcore.so.12.1 /usr/lib
Sudo ln -s $Oracle_HOME/lib/libclntsh.so.12.1 /usr/lib

cp $Oracle_HOME/rdbms/lib/ins_rdbms.mk $Oracle_HOME/rdbms/lib/ins_rdbms.bkp
cp $Oracle_HOME/rdbms/lib/env_rdbms.mk $Oracle_HOME/rdbms/lib/env_rdbms.bkp

sed -i 's/\$(ORAPWD_LINKLINE)/\$(ORAPWD_LINKLINE) -lnnz12/' $Oracle_HOME/rdbms/lib/ins_rdbms.mk
sed -i 's/\$(HSOTS_LINKLINE)/\$(HSOTS_LINKLINE) -lagtsh/' $Oracle_HOME/rdbms/lib/ins_rdbms.mk
sed -i 's/\$(EXTPROC_LINKLINE)/\$(EXTPROC_LINKLINE) -lagtsh/' $Oracle_HOME/rdbms/lib/ins_rdbms.mk
sed -i 's/\$(OPT) \$(HSOTSMAI)/\$(OPT) -Wl,--no-as-needed \$(HSOTSMAI)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(OPT) \$(HSDEPMAI)/\$(OPT) -Wl,--no-as-needed \$(HSDEPMAI)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(OPT) \$(EXTPMAI)/\$(OPT) -Wl,--no-as-needed \$(EXTPMAI)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
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/\$(SPOBJS) \$(LLIBSERVER)/\$(SPOBJS) -Wl,--no-as-needed \$(LLIBSERVER)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKFEDED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKFEDED)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKFODED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKFODED)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKFNDGED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKFNDGED)/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/\$(S0MAIN) \$(SSKFMUED)/\$(S0MAIN) -Wl,--no-as-needed \$(SSKFMUED)/' $Oracle_HOME/rdbms/lib/env_rdbms.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 -Wl,--no-as-needed \$LD_RUNTIME/' $Oracle_HOME/bin/genorasdksh
sed -i 's/\$(GETCRSHOME_OBJ1) \$(OCRLIBS_DEFAULT)/\$(GETCRSHOME_OBJ1) -Wl,--no-as-needed \$(OCRLIBS_DEFAULT)/' $Oracle_HOME/srvm/lib/env_srvm.mk

sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/rdbms/lib/env_rdbms.mk
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/crs/lib/env_has.mk;
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/odbc/lib/env_odbc.mk;
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/precomp/lib/env_precomp.mk;
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/srvm/lib/env_srvm.mk;
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/network/lib/env_network.mk;
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/ldap/lib/env_ldap.mk;
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/ord/im/lib/env_ordim.mk;
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/plsql/lib/env_plsql.mk;
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/ctx/lib/env_ctx.mk;
sed -i 's/LDDISABLENEWDTAGS=-Wl,--disable-new-dtags/LDDISABLENEWDTAGS=-Wl,--no-as-needed,--disable-new-dtags/' $Oracle_HOME/sqlplus/lib/env_sqlplus.mk;

スクリプトのOracle_HOME行を、Oracleのインストールディレクトリを指すように変更します。スクリプトを実行可能にし、Oracleユーザーとして実行します。

chmod a+x /tmp/fixora
Sudo su - Oracle
/tmp/fixora

インストーラに戻り、エラーダイアログの[再試行]ボタンを押します。これで、インストールは問題なく終了するはずです。

結果のインストールは機能しませんが、データベースの作成は「startup mount」コマンドでハングし、localtime内でOracle BEQプロセスがデッドロックします。これを修正するには、ユーザーOracleとして次の操作を再度実行します。

cd $Oracle_HOME/lib/stubs
rm libc*
cd ../../bin
./relink all

再リンク後、データベースの作成が機能するはずです。次を使用して作成できます。

dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbname $DBNAME -sid $DBNAME -responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword REPLACE_WITH_PASSWORD \
-systemPassword REPLACE_WITH_PASSWORD \
-createAsContainerDatabase false \
-databaseType MULTIPURPOSE \
-automaticMemoryManagement false \
-totalMemory 2048 \
-storageType FS \
-datafileDestination "/opt/Oracle/oradata/" \
-redoLogFileSize 500 \
-emConfiguration NONE \
-ignorePreReqs
10
fjalvingh

私はubuntu 18.04でリンクの問題に直面しました。 1つのポップアップが開き、リンクエラーが表示されます。ポップアップを開いたままにして、以下の手順を実行した後、再試行をクリックしました。

インストールログファイルを確認しましたが、ほとんどのライブラリが見つかりません。

情報:/ usr/bin/ld:/usr/lib64/libpthread_nonshared.aが見つかりません

それから私は走った:

libpthread_nonsharedを見つけます

同じファイルが存在するディレクトリを示しました。しかし、Oracleインストーラーは/ usr/lib64フォルダーでこれらのファイルを探していました。

以下のコマンドを使用して、これらのファイルのソフトリンクを作成しました。

cd/usr/lib64; ln -s /usr/lib/....../*/usr/lib64 /

次に、再試行ボタンをクリックしました。

0
user1965911

それを確認します $Oracle_HOME/bin/oradism rootに属し、setuidが有効になっている場合:

-rwsr-x--- 1 root dba 95844 may 24  2018 $Oracle_HOME/bin/oradism
0
manu