dba だってもっと効率化したい!〜最近の自動化事情とoracle database〜
TRANSCRIPT
![Page 1: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/1.jpg)
DBA Oracle Database
2016.09.12 - JPOUG in 15 minutes #1 Michitoshi Yoshida
(@miyosh0008)
![Page 2: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/2.jpg)
• (@miyosh0008)
• Engineered Systems
Exadata, Exalogic, Exalytics, etc..
•
etc..
![Page 3: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/3.jpg)
![Page 4: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/4.jpg)
Oracle Database
![Page 5: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/5.jpg)
DB
+ RAC + PDB
![Page 6: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/6.jpg)
Oracle DB
![Page 7: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/7.jpg)
![Page 8: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/8.jpg)
1.
2.
3.
4.
![Page 9: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/9.jpg)
•
Chef -
-
- Recipe Ruby
Puppet - 2005
- Chef
- Puppet Enterprise
![Page 10: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/10.jpg)
•
Ansible - Python 2.4
- YAML
- 2015 RedHat
Itamae - Chef
- Chef Ruby
-
![Page 11: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/11.jpg)
• Serverspec -
- RSpec Ruby
-
Testinfra - Serverspec Python
- pytest Python
- Serverspec
![Page 12: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/12.jpg)
•
Infrataster - Serverspec RSpec
-
: WEB URL HTTP
200 etc..
- Serverspec
![Page 14: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/14.jpg)
3.→ alter
ShellScript OK Ansible
#
: Hello,module! 15 Ansible Bash
![Page 15: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/15.jpg)
4.
→ OS Serverspec
SQL
SQL
Infrataster
→
![Page 16: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/16.jpg)
Infrataster-plugin-oracledb
•
•
-
- REDO
- SQL
![Page 17: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/17.jpg)
Infrataster-plugin-oracledb• Infrataster Gem
gem bundler #
# m(_ _)m
![Page 18: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/18.jpg)
![Page 19: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/19.jpg)
![Page 20: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/20.jpg)
# zip $ unzip /tmp/instantclient-basic-linux.x64-12.1.0.2.0.zip -d /opt/oracle/instantclient/$ unzip /tmp/instantclient-sdk-linux.x64-12.1.0.2.0.zip -d /opt/oracle/instantclient/
# $ cd /opt/oracle/instantclient/instantclient_12_1$ ln -s libclntsh.so.12.1 libclntsh.so$ ln -s libocci.so.12.1 libocci.so$ echo "/opt/oracle/instantclient/instantclient_12_1" >/etc/ld.so.conf.d/oracle.conf
# .bash_profile export ORACLE_HOME=/opt/oracle/instantclient/instantclient_12_1export LD_LIBRARY_PATH=$ORACLE_HOME
Step1: Oracle Instant Client
Basic SDK
![Page 21: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/21.jpg)
# $ mkdir oracle_test$ cd oracle_test
# Gemfile $ cat Gemfilesource 'https://rubygems.org'gem 'infrataster'gem ‘infrataster-plugin-oracledb'
# # : ruby bundler $ bundle install$ bundle show | grep infrataster * infrataster (0.3.2) * infrataster-plugin-oracledb (0.1.0) # ← OK
Step2: infrataster infrataster-plugin-oracledb
![Page 22: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/22.jpg)
# spec$ cp -r $(bundle show infrataster-plugin-oracledb)/spec ./
# spec_helper.rb $ vi spec/spec_helper.rb
# spec_helper.rb... ...Infrataster::Server.define( :orcl, # ← ‘192.168.56.101', # ← oracledb: { user: 'system', password: 'oracle', service_name: 'orcl'},)... ...
Step3:
![Page 23: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/23.jpg)
# oracledb_query_spec.rb $ vi spec/oracledb_query_spec.rb
# oracledb_query_spec.rb# coding: utf-8require 'spec_helper'
describe server(:orcl) do describe oracledb_query('select name,display_value from v$parameter') do # check db_block_size it "initialization parameter 'db_block_size' should equal 8192" do row = results.find { |r| r['NAME'] == 'db_block_size' } expect(row['DISPLAY_VALUE'].to_i).to eq 8192 end endend
Step4:
: db_block_size 8192
![Page 24: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/24.jpg)
$ bundle exec rspec
Warning: NLS_LANG is not set. fallback to US7ASCII.Run options: include {:focus=>true}
All examples were filtered out; ignoring {:focus=>true}
Randomized with seed 28464.
Finished in 0.06133 seconds (files took 0.4652 seconds to load)1 example, 0 failures
Randomized with seed 28464
Step5:
1 0
![Page 25: DBA だってもっと効率化したい!〜最近の自動化事情とOracle Database〜](https://reader030.vdocuments.mx/reader030/viewer/2022021500/587065a31a28ab48378b4eb3/html5/thumbnails/25.jpg)
# .rspec $ cat .rspec--color--format documentation
$ export NLS_LANG=JAPANESE_JAPAN.AL32UTF8$ bundle exec rspec
... ...server 'orcl' oracledb_query 'select name,display_value from v$parameter' initialization parameter 'db_block_size' should equal 8192
Finished in 0.0545 seconds (files took 0.41626 seconds to load)1 example, 0 failures... ...
Step6:
RSpec