[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