[one-users] OpenNbula 3.0 migration: problem with onedb

Ruben Diez rdiez at cesga.es
Tue Oct 18 07:41:57 PDT 2011


We had used the /usr/share/one/install_gems script to install gems....

Never the less seems that some of them need the corresponded devel c 
library, and fails to install

We now had install the gems one by one, and these errors appears...

Now the onedb command runs....

Thanks a lot for your help....




Ruben Diez escribió:
> Thank you for your help....
>
> After the modification you suggest, this is the output:
>
> oneadmin at onesrv04:/srv/cloud$ onedb upgrade -v
> undefined method `fetch' for nil:NilClass
> Database schema does not look to be created by OpenNebula: table 
> user_pool is missing or empty.
>
> Seems to fail to find a function.... Perhaps any library is needed??
> We think all the ruby gems are installed, as the documentation 
> explain....
>
>
>
>
> Carlos Martín Sánchez escribió:
>> I don't see any other reasons why this could fail... Could you edit 
>> /usr/lib/one/ruby/onedb/onedb_backend.rb to output some more info?
>>
>> Just add the Exception message to the rescue clause in db_exists?
>>
>>     def db_exists?
>>         begin
>>             # User with ID 0 (oneadmin) always exists
>>             @db.fetch("SELECT * FROM user_pool WHERE oid=0") { |row| }
>>             return true
>>         rescue Exception => e
>>             puts e.message
>>             return false
>>         end
>>     end
>>
>> Thank you
>> -- 
>> Carlos Martín, MSc
>> Project Engineer
>> OpenNebula - The Open Source Toolkit for Cloud Computing
>> www.OpenNebula.org <http://www.opennebula.org/> | 
>> cmartin at opennebula.org <mailto:cmartin at opennebula.org>
>>
>>
>> 2011/10/18 Ruben Diez <rdiez at cesga.es <mailto:rdiez at cesga.es>>
>>
>>     Yes: it is populated:
>>
>>     mysql> select * from user_pool where oid=0;
>>     
>> +-----+-----------+------------------------------------------+---------+
>>     | oid | user_name | password                                 |
>>     enabled |
>>     
>> +-----+-----------+------------------------------------------+---------+
>>     |   0 | oneadmin  | 8944aada99d6d0122494dd0ac8129db653bc1f4a |    
>>       1 |
>>     
>> +-----+-----------+------------------------------------------+---------+
>>     1 row in set (0.00 sec)
>>
>>     When you put the "-p" option followed by a blank space you are
>>     prompted for the password... in this case "opennebula" is the
>>     database name, not the password...
>>
>>     We can't make onedb backup in the old machine because the onedb
>>     command don't exist in OpenNebula 2.1...
>>
>>     Any way, the onedb backup command seems to be a wrapper of the
>>     mysqldump command....
>>
>>
>>
>>     Carlos Martín Sánchez escribió:
>>
>>         Hi,
>>
>>         Is the DB in the new machine correctly populated?
>>         Can you manually perform a "select * from user_pool where
>>         oid=0;" ?
>>
>>         I'm asking because the '-p' option of the mysql commands needs
>>         the password right next to it, without any space; i.e.
>>         '-popennebula' instead of '-p opennebula'
>>
>>
>>         In case any other user is in a similar situation, you can use
>>         the onedb command to move the DB to the new mysql server using
>>         "onedb backup" and "onedb restore".
>>
>>         Regards.
>>         --
>>         Carlos Martín, MSc
>>         Project Engineer
>>         OpenNebula - The Open Source Toolkit for Cloud Computing
>>         www.OpenNebula.org <http://www.OpenNebula.org>
>>         <http://www.opennebula.org/> | cmartin at opennebula.org
>>         <mailto:cmartin at opennebula.org> <mailto:cmartin at opennebula.org
>>         <mailto:cmartin at opennebula.org>>
>>
>>
>>
>>         On Tue, Oct 18, 2011 at 12:35 PM, Ruben Diez <rdiez at cesga.es
>>         <mailto:rdiez at cesga.es> <mailto:rdiez at cesga.es
>>         <mailto:rdiez at cesga.es>>> wrote:
>>
>>            Hi:
>>
>>            We are attempt to migrate OpenNebula from 2.1.80 to 3.0....
>>
>>            But the new 3.0 OpenNebula was installed in a new machine.
>>
>>            For database migration, we have followed these steps:
>>
>>            1- In the old machine, we made a dump of the database:
>>
>>            mysqldump -h localhost -u oneadmin -p opennebula
>>            >opennebula_2_database.mysq
>>
>>            2- In the new machine, we create the oneadmin user, an empty
>>            opennebula database and grant privileges to user oneadmin on
>>            database opennebula:
>>
>>            mysql> create user 'oneadmin'@'localhost' identified by
>>         'XXXXX';
>>            mysql> create database opennebula;
>>            mysql> grant all privileges on opennebula.* to
>>         'oneadmin'@'localhost';
>>
>>            3- Now, in the new machine, we restore the 2.1 version
>>         database:
>>
>>            mysql -h localhost -u oneadmin -p opennebula
>>            <opennebula_2_database.mysql
>>
>>            4- The configuration of the database is set in the
>>         oned.conf file:
>>
>>            DB = [ backend = "mysql",
>>                  server  = "localhost",
>>                  port    = 0,
>>                  user    = "oneadmin",
>>                  passwd  = "XXXXX",
>>                  db_name = "opennebula" ]
>>
>>            5- Now, we attempt the database conversion: but it fails:
>>
>>            #oneadmin at onesrv04:/srv/cloud$ onedb upgrade -v            
>>                               Database schema does not look to be
>>         created by
>>            OpenNebula: table user_pool is missing or empty.
>>
>>
>>            We attempt to avoid oned.conf file, but also fails:
>>
>>            #oneadmin at onesrv04:/srv/cloud$ onedb upgrade -v  -u 
>> oneadmin -d
>>            opennebula   MySQL Password:
>>            MySQL option DBNAME is needed
>>
>>            #oneadmin at onesrv04:/srv/cloud$ onedb upgrade -v  -u root -d
>>         opennebula
>>            MySQL Password:
>>            MySQL option DBNAME is needed
>>
>>            #oneadmin at onesrv04:/srv/cloud$ onedb upgrade -v -P 3306 -S
>>            localhost -u oneadmin -d opennebula
>>            MySQL Password:
>>            MySQL option DBNAME is needed
>>
>>
>>            Any ideas about why the database migration fails??
>>
>>            Regards....
>>
>>            _______________________________________________
>>            Users mailing list
>>            Users at lists.opennebula.org
>>         <mailto:Users at lists.opennebula.org>
>>         <mailto:Users at lists.opennebula.org
>>         <mailto:Users at lists.opennebula.org>>
>>            http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>>
>>
>>
>>
>
> _______________________________________________
> Users mailing list
> Users at lists.opennebula.org
> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org




More information about the Users mailing list