入門者のLinux 2章 まとめ

奈佐原顕郎さん「入門者のLinux」より

 

Linuxを自分のpcで動かす方法

ハードディスクを付け替える

・バックアップをちゃんととって!

デュアルブート

・一台のパソコンに複数のOSを同居させ起動するたびにどちらかを選択する
・リスクが大きいので自己責任で

仮想環境

VirtualBoxQEMUなどのオープンソースの仮想環境を実現するソフトにLinuxを入れて動かす(私はVirtualBoxでやりました)
デュアルブートと違い同時に複数のOSを走らせることができる

ディストリビューション(Ubuntu使用)

Ubuntu Linux

・ユーザー層が厚く日本語サポートや各種アプリケーションソフトが充実している
・バージョン番号は西暦の下二桁と月二桁をドットをはさんで並べたもの
・ソフトは最新だと新たな試みが詰まっている分不具合が多い(枯れていないという)
・「革新的」と「枯れている」は両立しない
・頻繁に新バージョンを出すのと並行して特定のバージョンについて長期間サポートすることにしている(Long Term Support,LTS)

入門者のLinux 1章 まとめ

Oracleマスターブロンズ12c資格試験合格しました。

ということでこれからLinuxの勉強をしていきます。

 

まず奈佐原顕郎さんの「入門者のLinux」という本から。

あ。この本めっちゃよいですよ。

しばらく簡単な備忘録を。

今回は1章

世の中のコンピュータの共通点

基本ソフトを載せないと動かない

・コンピュータを動かすための縁の下の力持ち的なソフトウェア
Linuxは基本ソフトの一種
・世の中のほとんどのコンピュータに載る

UnixLinux

・1970年ごろ米国でUnixという素晴らしい基本ソフトが誕生
・同じ頃、オープンソースソフトウェアという思想が広まる
オープンソース版のUnixを作る中で最終的に最も普及したのがLinuxである
Linuxオープンソースであり、世界中の人たちによって作られている

操作方法

GUI (graphical user interface)

・ウィンドウやアイコンをマウスやタッチパネルで操作

CUI (character user interface)

・コマンドをキーボードで打ち込んで操作
UnixLinuxは本来こちらを使用する

Linuxキーワード

コミュニティ

・何か特定のソフトの開発者とユーザーからなる自発的な集まり

カーネル

Linuxの中枢部をなすソフト

ファイル

・コンピュータで扱われる情報のひとまとまりの単位

パッケージ

・一つのソフトをインストールしやすい形にまとめたもの
カーネルもパッケージとして提供される

ディストリビューション

カーネルにいろいろなソフトを組み合わせて使いやすくしたもの
・いろんな種類がある

ディレクトリ

・フォルダ的なファイルや別のディレクトリを入れる入物

マウント

・ハードディスクやUSBメモリはまず「デバイスファイル」というファイルとして認識される。それを一つのディレクトリとして認識させることをいう

シェル

LinuxCUIを提供するシステム

MacにVirtualBoxをインストールし、CentOSをインストールする

VirtualBoxのインストール

・Downloads – Oracle VM VirtualBox からMac用のPackageをダウンロードしてインストール

CentOSのダウンロード

VirtualBox仮想マシンを作成

・インストールした VirtualBox を起動して「新規」ボタンをクリックします。「名前」を適当に入力して「タイプ」を Linux、「バージョン」を Red Hat (64bit) にする。
*名前に Cent と入力するとタイプとバージョンが自動で変更される

・メモリーサイズを指定。メモリは実際のPCのメモリを使用するため7割以内(緑色の部分)でおさめるように。メモリが少ないと重くなるのでMacのメモリは最低でも8GB、理想は16GB以上はあった方がよい

・仮想ハードドライブを作成するが選択されてることを確認して作成をクリック

・ファイルタイプも他の仮想ソフトウェアで使用する必要がなければ、VDIのままにしておく

・ストレージを可変サイズか固定サイズか選択。容量に余裕があれば固定サイズの方が高速

・最後にファイルの場所とサイズを確認される。問題なければ作成をクリック。ファイルは~/VirtualBox VMsに作成される

ホストオンリーネットワークの追加

仮想マシンを作成した段階ではネットワークアダプターは「NAT」のみになっている。この場合、インターネットなどのネットワークとは通信ができるが、ホストマシン(自分のMac)と通信することができない。仮想マシンとは言え、別のリモートサーバーにあると考えること。そこで、仮想マシンに「ホストオンリーアダプター」を追加し、ホストマシンと通信できるようにできる。「VirturalBox -> 環境設定」を開いて「ネットワーク -> ホストオンリーネットワーク」を作成

・作成されたネットワークをダブルクリックするとIPなどが確認でき、このIPアドレスを後ほど使う

・設定をクリックして「ネットワーク -> アダプター2」でネットワークアダプターを有効化して、作成したネットワークを割り当てる

仮想マシンにCentOS7をインストール

・CentOS7を仮想マシンにインストール。公式サイト Download CentOS からISOファイルをダウンロード。

ISOは3種類あり、DVD ISOは一般的な用途でよく使われるので、どれを使えばいいのか分からない場合はとりあえずこれ。Everything ISOはCentOS7で提供される全てのパッケージが含まれている。Minimal ISOは最低限のパッケージが含まれている。今回はMinimal ISOを使用。

Minimal ISOを選択するとダウンロードページに移動する。どのリンクでもいいが Actual Country が日本のサイトからダウンロードされる。

・ダウンロードが完了したら作成した仮想マシンを起動

・まだOSがインストールされていないので、ダウンロードしたCentOS7のISOファイルを指定する

・矢印キーで Install CentOS 7 を選択して Enter を押す

・言語を選択。右下に続行ボタンがあるのでクリック

・インストール先に警告マークが付いてるのでクリックして、何も変えずに完了をクリック。警告が消えるので右下にあるインストールの開始をクリック。

・インストール中に root のパスワードを設定してユーザーを作成しておく

・このユーザーを管理者にするにチェックを入れる

ネットワーク設定

・CentOS7からはネットワークの設定は「NetworkManager」を使用することが推奨されている。nmtuiコマンドを実行。

# nmtui

・メニュー画面が表示されたら「Edit a connection」を選択し「Enter」キー

・操作は矢印キーとEnterで行なう。まずは「enp0s3」を選択し「Enter」キーを押す

IPv6は使用しないので「Ignore」に変更して、Automatically connect(OS起動時にNICを有効化させる)にチェック(スペースキー)

・次は「enp0s8」。これは「ホストオンリーアダプター」になる。IPアドレスを固定にしたいので、Manual に変更してIPアドレスを設定。ホストオンリーネットワークのIPアドレス(192.168.56.1以外)を入力。IPv6を「Ignor」に変更して、Automatically connect にチェックを入れて完了

・Quit で終了

・Networkを再起動して設定を反映させる。

# systemctl restart NetworkManager

・これでMacのターミナルなどから SSH でログインできるようになる。要求されるパスワードはインストール時に設定したパスワード。

CentOS7に後からGUI(X Window System)を追加する

デスクトップ環境が欲しい場合

yum groupinstall で "GNOME Desktop" をインストールする。

$ sudo yum -y groupinstall "GNOME Desktop"
あるいは "Server with GUI" でも構わない。

$ sudo yum -y groupinstall "Server with GUI"

・インストールが終わったら、起動モードを graphical.target に変更する。

$ sudo systemctl set-default graphical.target
$ systemctl get-default graphical.target

・再起動する

$ sudo shutdown -r now

 

引用元

MacでVirtualBoxにCentOS7をインストールしてSSH接続をするまでの方法 - TASK NOTES

CentOS7 に後から GUI (X Window System) を追加する - CUBE SUGAR CONTAINER

この記事ほぼ引用です。リンク先がいつ消えるかわからないのでメモを。

わかりやすくて助かりました。

 

CentOS7にOracle12cをインストールする 準備編

 

ただいまOracleMasterBronz12cDBAの合格目指してお勉強中。

 

Linuxのお勉強はそれが終わってからなんだけど

白本に載ってる環境を構築してみることになったので

VirtualBoxでCentOS7を起動してOracle12cをインストール

 

その経過と困ったこと

わすれるのでメモメモ

 

まず必要なパッケージをインストール

[root@testuser ~]# yum -y install binutils compat-libcap1 gcc gcc-c++ glibc glibc.i686 glibc-devel glibc.i686 ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++l7.i686 libstdc++-devel libstdc++-devel.i686 compat-libstdc++-33 compat-libstdc++-33.i686 libXi libXi.i686 libXtst libXtst.i686 make sysstat 

 

なんだけどそもそもいまこれ[testuser@localhost ~]#

rootユーザーって、どうすればいいの・・・

suでユーザー切り替えすればいいっていろんなところに書いてあるからしたけど
passwordしらない・・・

調べ方が悪いのか良い記事に出会えない・・・

最終的に

Ubuntuは初期状態ではrootが使えない(パスワード未設定)ようになっている」

という記事をみつけてUbuntuとか知らないけど試しにやってみたらいけた(´•ω•̥`)

```
$ sudo su -
Pssword:(自分のパスワード)
# passwd
[rootのパスワードを設定]

```

ここだけでめっちゃ時間かかった。

ちなみにUbuntuLinuxの人気ディストリビューションLinuxの人気の配布形態)らしい。初心者におすすめだって。

 

さて次にカーネルパラメータを編集

[root@testuser ~]# MEMTOTAL=$(free -b | sed -n '2p' | awk '{print $2}')

[root@testuser ~]# SHMMAX=$(expr $MEMTOTAL / 2)
[root@testuser ~]# SHMMNI=4096
[root@testuser ~]# PAGESIZE=$(getconf PAGE_SIZE)
 
ここまではよかった。
 
[root@testuser ~]# cat >> etc/sysctl.conf << EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = $SHMMAX
kernel.shmall = `expr \( $SHMMAX / $PAGESIZE \) \* \( $SHMMNI / 16 \)`
kernel.shmmni = $SHMMNI
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
EOF 
 
これなに。どうすればいいの。どこまでがなんなの。
cat >> etc/sysctl.conf << EOFのままだとなんか怒られるから
とりあえずいろいろ調べてcat etc/sysctl.confとかしたけど結局だめだった(これ意味あったのだろうか・・・)
わかる人にみてもらってvimを使って設定してもらった。
これはLinuxの勉強したらわかるっぽいので今回はおいておくよ
 
それから
[root@testuser ~]# sysctl -p
 
なんかこれも出力おかしいねって言われたけど
原因は不明です。
一応ちゃんとできはした。

 

オラクル専用のユーザー/グループを作成し、システムの環境設定

 

[root@testuser ~]# i=54321; for group in oinstall dba backupdba oper dgdba kmdba; do

groupadd -g $i $group; i=`expr $i + 1`
done

[root@testuser ~]# useradd -u 1200 -g oinstall -G dba,oper,backupdba,dgdba,kmdba -d /home/oracle oracle 


[root@testuser ~]# passwd oracle

[root@testuser ~]# mkdir -p /u01/app/oracle 

[root@testuser ~]# chown -R oracle:oinstall /u01/app 

[root@testuser ~]# chmod -R 775 /u01 

[root@testuser ~]# vi /etc/pam.d/login

 

session required pam_namespace.so

session    required     pam_limits.so
session    optional     pam_keyinit.so force revoke

[root@testuser ~]# vi /etc/security/limits.conf 
最終行に追記
oracle soft nproc 2047
oracle  hard  nproc   16384
oracle  soft  nofile  1024
oracle  hard  nofile  65536
oracle  soft  stack   10240
oracle  hard  stack   32768

  viはvimのことを指していて、編集できるようにするためのもの

Linuxはやく勉強しなきゃ〜

 

最後にOracle用の環境設定

作業は「Oracle」ユーザーで行うから

[root@testuser ~]# su oracle

で切り替え

 

[root@testuser ~]# vi ~/.bash_profile

 

この二つを最終行に追加

umask 022
export ORACLE_BASE=/u01/app/oracle

 

[oracle@localhost ~]$ mkdir tmp

 

これでインストール準備完了〜

 

参考はここ

https://www.server-world.info/query?os=CentOS_7&p=oracle12c&f=1

http://linux40.hateblo.jp/entry/20070903/1188797994

お世話になりました。

めっちゃ長かった〜

続きはまた今度。寝る〜。

 

Oracle12c ターミナルでの使い方 メモ

Oracle12c ターミナルでの使い方

docker psで現在の状況を確認

 STATUSがUpになっていたら

 sqlplus system/manager@localhost:1521/orcl

 を実行

dockerをstopさせる

docker stop d32cce0f7605

 このあと

docker ps

 で確認すると何も表示されない

dockerをstartさせる

docker ps -a

 で

d32cce0f7605

 を見つける

docker start d32cce0f7605

 でdockerをstartさせる

使い終わったら

docker stop d32cce0f7605 

 でdockerをストップさせる

sqlplusがないと言われた場合

source ~/.bashrc

 を入力

Docker手順

docker手順

ステータスの確認

docker-machine ls

・nameがoracle-xe-11gのstateの欄を確認する

stateがrunningだった場合実行する

docker-machine stop oracle-xe-11g

olacleが動くためのdockerコンテナを動かすdockermachineを起動する

docker-machine start oracle-xe-11g

環境変数を適用する

eval "$(docker-machine env oracle-xe-11g)"

dockerコンテナを起動する

docker run -d -p 49162:22 -p 49163:1521 wnameless/oracle-xe-11g
sqlplus system/oracle@localhost:1521/xe
alter user system account unlock;

Dockerコンテナに接続して作業する場合

docker-machine内のdockerコンテナを起動するホストマシンに接続する

 docker-machine ssh oracle-xe-11g

dockerコンテナに接続

ssh root@localhost -p 49162

パスワード

admin

Are you sure you want to continue connecting (yes/no)? yes

成功

root@f8a87db3745b:~#

Oracleユーザーにスイッチ

su oracle

sqlplusにログイン

sqlplus system/oracle

Oracleのしくみ1

 

今回から 小田圭二/著 の絵で見てわかるOracleの仕組み アーキテクチャと動作を徹底図解

という本で勉強したことをのせていきます〜

 

一章

IOとディスクの関係

 

まずOracleで重視されていることが三つあって

  • 並列処理を可能にし、高スループットも実現
  • レスポンスを重視
  • COMMITされたデータは守る

この三つを守るためにいろんな工夫がされているみたい

 

OracleDBMS(データ管理システム)でディスクからデータを読み込み処理をして、ディスクにデータを書き戻すという作業をしている

だからOracleとディスクは切っても切れない関係なんだって

 

そのディスクはめちゃくちゃ回転速度がはやくて

データを読み書きするために頭出しというのをしないといけないのだけど、これがシーク

で、欲しい情報が回転してくるまで待つのを回転待ち時間という

 

でもディスクだと時間がかかるし、メモリのほうが断然はやいらしい。ちなみにメモリはCOMMIT前のデータを保持している

 

データの読み書きの方法にシーケンシャルアクセスというのがあって、これは先頭から間を抜かさずにデータの読み書きをする

フルスキャンのときにメモリにデータがないとシーケンシャルアクセスが発生する

これめっちゃ時間かかるから、メモリにあるインデックスを使うと必要な箇所だけ読めばいいから便利!

でも必要な箇所がディスク上で連続していることはほとんどないからヘッドというのを動かして飛び飛びにアクセスする

これがランダムアクセス

ランダムアクセスはシークと回転待ちに時間をさくから非効率らしい

 

あとCOMMITされたデータは守るっていうところ

Oracleのプロセスが異常終了してもデータを失ってはいけないからデータ変更後にCOMMITを入力するとOracleはデータをディスクに書き出している

ここを高速に処理するための仕組みもあるけどそれは後々!

 

こんな感じかな〜

本は詳しい絵も載っててわかりやすかったし内容ももっと詳しく書いてありました〜おすすめ◎