[one-users] OpenNbula 3.0 migration: problem with onedb
Ruben Diez
rdiez at cesga.es
Tue Oct 18 07:00:59 PDT 2011
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
>
>
>
>
More information about the Users
mailing list