Code Monkey home page Code Monkey logo

Comments (12)

brokedba avatar brokedba commented on July 20, 2024

I tried another time and now it stops at the manage tablespace Task

TASK [oradb-manage-pdb : Manage pdb(s)] ****************************************

TASK [oradb-manage-tablespace : Manage tablespaces (db/cdb)] *******************

TASK [oradb-manage-tablespace : Manage tablespaces (pdb)] **********************
failed: [london1] (item=port: 1521 service: PDB tablespace: users content: permanent state: present) => {"changed": false, "item": [{"cdb": "rac_db", "home": "18300-base", "init_parameters": [{"name": "db_create_file_dest", "scope": "both", "state": "present", "value": "+DATA"}], "pdb_name": "PDB", "roles": [{"grants": ["create session", "create table", "select any table", "select any dictionary"], "name": "approle1", "state": "present"}], "services": [{"ai": "racdb2", "name": "app1_service", "pi": "racdb1", "state": "started"}], "state": "present", "users": [{"default_tablespace": "appuser1_data", "grants": ["approle1"], "schema": "appuser1", "state": "present"}]}, {"autoextend": false, "bigfile": true, "content": "permanent", "maxsize": "500M", "name": "users", "next": "5M", "size": "10M", "state": "present"}], "msg": "Could not connect to database - ORA-12514: TNS:listener does not currently know of service requested in connect descriptor, connect descriptor: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=london1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=PDB)))"}
failed: [london1] (item=port: 1521 service: PDB tablespace: appuser1_data content: permanent state: present) => {"changed": false, "item": [{"cdb": "rac_db", "home": "18300-base", "init_parameters": [{"name": "db_create_file_dest", "scope": "both", "state": "present", "value": "+DATA"}], "pdb_name": "PDB", "roles": [{"grants": ["create session", "create table", "select any table", "select any dictionary"], "name": "approle1", "state": "present"}], "services": [{"ai": "racdb2", "name": "app1_service", "pi": "racdb1", "state": "started"}], "state": "present", "users": [{"default_tablespace": "appuser1_data", "grants": ["approle1"], "schema": "appuser1", "state": "present"}]}, {"autoextend": false, "bigfile": true, "content": "permanent", "maxsize": "500M", "name": "appuser1_data", "next": "5M", "size": "10M", "state": "present"}], "msg": "Could not connect to database - ORA-12514: TNS:listener does not currently know of service requested in connect descriptor, connect descriptor: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=london1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=PDB)))"}

NO MORE HOSTS LEFT *************************************************************

from vagrant-vbox-rac.

brokedba avatar brokedba commented on July 20, 2024

[oracle@racdb1 admin]$tnsping racdb is successful on both nodes though

Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = london-cluster-scan.evilcorp.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = racdb)))
OK (40 msec) 

[oracle@racdb2 oracle]$srvctl status database -db racdb

Instance racdb1 is running on node london1
Instance racdb2 is running on node london2

[oracle@racdb2 oracle]$sqlplus / as sysdba
Connected to:Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
SYS @ RACDB2:CDB$ROOT:>SELECT NAME, CON_ID, DBID, CON_UID, GUID FROM V$CONTAINERS ORDER BY CON_ID;

NAME                CON_ID       DBID    CON_UID GUID
--------------- ---------- ---------- ---------- --------------------------------
CDB$ROOT                 1 1016529875          1 64A52F53A7683286E053CDA9E80AED76
PDB$SEED                 2 1898853373 1898853373 9276EB713D994B9FE053334EA8C0EAF4

I don't get why ansible play stopped

from vagrant-vbox-rac.

oravirt avatar oravirt commented on July 20, 2024

Hi, sorry about the late answer.
Yes, please show me your hosts.yml, and then I'll see if I can re-produce this

from vagrant-vbox-rac.

brokedba avatar brokedba commented on July 20, 2024

Hi, No problem Mikael. here is the hosts.yml file

 - basename_vm: london
  num_vm: 2
  hostgroup: vbox-rac-dc1
  domain: evilcorp.com
  box: oravirt/rhel75
  vagrant_user: vagrant
  vagrant_pass: vagrant
  #vagrant_private_key: /vagrant/base-provision/insecure_private_key
  ram: 6196
  cpu: 1
  base_pub_ip: 192.168.78.51
  base_pub_ip_vip: 192.168.78.61
  scan_addresses: 192.168.78.251,192.168.78.252,192.168.78.253
  base_priv_ip: 172.16.100.51
  scan_name: "london-cluster-scan"
  synced_folders:
     #- {src: swrepo, dest: /media/swrepo}
     #- {src: /Users/miksan/Downloads/oracle, dest: /media/swrepo}
     - {src: "D:\\VM\\vagrant\\software", dest: /media/swrepo}
  base_disk_path:
  create_local_disk: true
  local_disks:
     - {name: u01, size: 75, count: 1}
  create_shared_disk: true
  shared_disks:
     - {name: crs, size: 40, count: 1}
     - {name: data, size: 8, count: 1}
     - {name: fra, size: 12, count: 2}
  provisioning: extra-provision/ansible-oracle/vbox-rac-dc1.yml
  provisioning_env_override: true

and here is the Vagrantfile (added scan_name and oracle_home vars)
https://bit.ly/2kCXGna

I think I know where the problem comes from . here is the content of oravirt\extra-provision\ansible-oracle\group_vars\vbox-rac-dc1\databases.yml

 oracle_databases:
      - home: 18300-base
        oracle_db_name: rac_db
        oracle_db_type: RAC
        is_container: True
        storage_type: ASM
        oracle_db_mem_totalmb: 1024
        oracle_database_type: MULTIPURPOSE
        redolog_size: 75M
        redolog_groups: 3
        datafile_dest: '+DATA'
        recoveryfile_dest: '+FRA'
        archivelog: True
        flashback: False
        force_logging: False
        state: present
        # tablespaces:
             # - { name: users, size: 10M, bigfile: True, autoextend: false , next: 5M, maxsize: 500M, content: permanent, state: present }
        init_parameters:
             - {name: db_create_file_dest, value: '+DATA', scope: both, state: present}
             - {name: db_create_online_log_dest_1, value: '+FRA', scope: both, state: present}
             - {name: db_recovery_file_dest, value: '+FRA', scope: both, state: present}
             - {name: db_recovery_file_dest_size, value: 20G, scope: both, state: present}

oracle database dbca creation uses the variable oracle_db_name in my case rac_db but it seems to ignore the underscore durring creation (name is now racdb) . So I guess the dbca create pdb may look for a db that doesn't exists (rac_db ) .
I am going to retry that with racdb and let you know " btw i dont understand why you split pdb and db creation in 2 tasks.
Thx

from vagrant-vbox-rac.

brokedba avatar brokedba commented on July 20, 2024

no it didn't fix it.

from vagrant-vbox-rac.

oravirt avatar oravirt commented on July 20, 2024

Thanks!
I haven't had time to look at this yet, sorry about that.

btw i dont understand why you split pdb and db creation in 2 tasks.

I may already have a CDB and only want to create a PDB and then it doesn't make sense to run the DB provisioning step.
The PDB lifecycle may be totally different to the CDB, so breaking up the management of them makes sense.

from vagrant-vbox-rac.

brokedba avatar brokedba commented on July 20, 2024

Hi Mikaël,
I finally found the root cause of the issue. it was due to memory starvation . I don't know if you have already run this build with that low amount of ram but I had to increase the ram in host.yml to

ram: 7168

the database creation was hanging because there was too much swapping in node 1.

               Cluster vbox-rac-dc1

      Listener   |      Port      |      london1      |      london2      |     Type     |
  ---------------------------------------------------------------------------------------
   LISTENER      | TCP:1521       |       Online      |       Online      |   Listener   |
   LISTENER_SCAN1| TCP:1521       |         -         |       Online      |     SCAN     |
   LISTENER_SCAN2| TCP:1521       |       Online      |         -         |     SCAN     |
   LISTENER_SCAN3| TCP:1521       |       Online      |         -         |     SCAN     |
  ---------------------------------------------------------------------------------------

         DB      |     Version    |      london1      |      london2      |    DB Type   |
  ---------------------------------------------------------------------------------------
   racdb         | 18.3.0.0   (1) |        Open       |        Open       |    RAC (P)   |
  ---------------------------------------------------------------------------------------
  ORACLE_HOME references listed in the Version column

         1 : /u01/app/oracle/product/18.3.0.0/db1       oracle oinstall

       : Has been restarted less than 24 hours ago

from vagrant-vbox-rac.

brokedba avatar brokedba commented on July 20, 2024

you said ,

I may already have a CDB and only want to create a PDB. and then it doesn't make sense to run the DB provisioning step.

how can that be if you are creating the build from scratch . if I read your yaml well I see manage_db role called first then quite later manage-pdb . so at worse we can introduce a boulean var that decides on creating a db with pdb or not and call dbca once with one template responsefile.

extra-provision/ansible-oracle/vbox-rac-dc1.yml

  • name: Database Server Installation & Database Creation
    hosts: vbox-rac-dc1
    user: vagrant
    become: yes
    roles:

    • oraswdb-install
    • {role: oraswdb-manage-patches, when: apply_patches_db}
      - oradb-manage-db
  • name: Configure Logrotate
    hosts: vbox-rac-dc1
    user: vagrant
    become: yes
    roles:

    • orahost-logrotate
  • name: Customize database
    hosts: vbox-rac-dc1
    user: vagrant
    sudo: yes
    roles:
    - oradb-manage-pdb

    • oradb-manage-tablespace
    • oradb-manage-parameters
    • oradb-manage-redo
    • oradb-manage-roles
    • oradb-manage-users
    • oradb-manage-grants
    • oradb-manage-services

from vagrant-vbox-rac.

oravirt avatar oravirt commented on July 20, 2024

I finally found the root cause of the issue. it was due to memory starvation

Great!

I don't know if you have already run this build with that low amount of ram

Yes, I have but it was slow

how can that be if you are creating the build from scratch

Yes, for this specific Vagrant project it builds everything from scratch, but the toolkit (ansible-oracle) is it's own project which can be run completely stand-alone and is just used as the provisioning step for this project
So, your're welcome to fork the project and customize it in whatever way you want (or start your own project) but this is the way it is treated for this project.
I don't really understand why you think it is a problem to have this in 2 separate tasks?

I try to write my Ansible roles such that they do 1 thing. So I think that bundling the pdb creation with the create (C)DB step is bad idea.

from vagrant-vbox-rac.

brokedba avatar brokedba commented on July 20, 2024

Hi Mikael,
Sorry I didn't mean to criticize your work . As a matter of fact I find the build amazing . I was just curious about the rac provisioning tasks and rules used in your build . I reckon now that ansible-oracle toolkit has a larger scope than just the rac build. I didn't say it was a bad idea or a problem I just wanted to know more about the context of your ansible provisioning .
Being new in ansible I had to read all the extra provisioning /group_vars roles involved in the playbook one by one to know what was actually happening. I even sent you emails before so I could understand it better .
I am interested to add rhel8 to the lists of boxes for this build (in a fork for example).
By the way how can we change the cluster name without messing up the hostgroup variable ?
I also wanted to know where does the oracle user password is defined.
Thank you again and sorry if my message seemed demanding .

from vagrant-vbox-rac.

yevp avatar yevp commented on July 20, 2024

Hi @KoussHD ,
Hash from default password is defined there:
https://github.com/oravirt/ansible-oracle/blob/master/roles/orahost/defaults/main.yml
relative path inside vagrant-vbox-rac ./extra-provision/ansible-oracle/roles/orahost/defaults/main.yml

  oracle_users:         # Passwd :Oracle123
   - { username: oracle, uid: 54321, primgroup: oinstall, othergroups: "dba,asmadmin,asmdba,backupdba,dgdba,kmdba,oper", passwd: "$6$0xHoAXXF$K75HKb64Hcb/CEcr3YEj2LGERi/U2moJgsCK.ztGxLsKoaXc4UBiNZPL0hlxB5ng6GL.gyipfQOOXplzcdgvD0" }

you could generate hash and override default with variable-precedence

$python -c 'import crypt; print crypt.crypt("Oracle123", "$6$0xHoAXXF$")'
$6$0xHoAXXF$K75HKb64Hcb/CEcr3YEj2LGERi/U2moJgsCK.ztGxLsKoaXc4UBiNZPL0hlxB5ng6GL.gyipfQOOXplzcdgvD0

from vagrant-vbox-rac.

brokedba avatar brokedba commented on July 20, 2024

thank you @yevp . It has been a while since I ran the build and deleted it few days later . But I'll give a try this weekend .

from vagrant-vbox-rac.

Related Issues (5)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.