SorgenkindMech: [MySQL] MyISAM -> NDB

huhu liebes forum! (und natürlich auch hallo an alle nutzer ;) )

ich bin gerade dabei eine vorhandene mysql-db in einen mysql-cluster zu migrieren
bisher lief eigendlich auch alles ganz gut, ich ändere tabelle für tabelle die engine
nun stoße ich aber auf eine tabelle, die strikt etwas dagegen haben zu scheint

vorab: ich weiß die tabelle hat keinen primärschlüssel, der kommt noch, aber grundlegend erstmal:

hier mal die tabelle um die es geht:

CREATE TABLE einstellungen (
  timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  id int(11) NOT NULL DEFAULT '1',
  profilname varchar(20) NOT NULL DEFAULT '',
  profilfarbe varchar(20) NOT NULL DEFAULT '',
  firma varchar(50) DEFAULT NULL,
  strasse varchar(30) DEFAULT NULL,
  ort varchar(20) DEFAULT NULL,
  plz varchar(10) DEFAULT NULL,
  anschrift varchar(50) NOT NULL DEFAULT '',
  logo varchar(50) DEFAULT NULL,
  logo2 varchar(50) NOT NULL DEFAULT '',
  fusszeile varchar(50) DEFAULT NULL,
  ustidentnr varchar(20) DEFAULT NULL,
  steuernr varchar(20) DEFAULT NULL,
  bank varchar(20) DEFAULT NULL,
  ktn varchar(10) DEFAULT NULL,
  blz varchar(10) DEFAULT NULL,
  iban varchar(255) NOT NULL DEFAULT '',
  bic varchar(50) NOT NULL DEFAULT '',
  tel varchar(20) DEFAULT NULL,
  fax varchar(20) DEFAULT NULL,
  www varchar(100) NOT NULL DEFAULT '',
  mail varchar(50) NOT NULL DEFAULT '',
  mwstnorm varchar(5) DEFAULT NULL,
  mwsterm varchar(5) DEFAULT NULL,
  warnstufeh char(3) DEFAULT NULL,
  warnstufen char(3) DEFAULT NULL,
  warnstufel char(3) DEFAULT NULL,
  low1 varchar(5) NOT NULL DEFAULT '',
  low2 varchar(5) NOT NULL DEFAULT '',
  low3 varchar(5) NOT NULL DEFAULT '',
  low4 varchar(5) NOT NULL DEFAULT '',
  low5 varchar(5) NOT NULL DEFAULT '',
  low6 varchar(5) NOT NULL DEFAULT '',
  high1 varchar(5) NOT NULL DEFAULT '',
  high2 varchar(5) NOT NULL DEFAULT '',
  high3 varchar(5) NOT NULL DEFAULT '',
  high4 varchar(5) NOT NULL DEFAULT '',
  high5 varchar(5) NOT NULL DEFAULT '',
  high6 varchar(5) NOT NULL DEFAULT '',
  rabatt1 varchar(5) NOT NULL DEFAULT '',
  rabatt2 varchar(5) NOT NULL DEFAULT '',
  rabatt3 varchar(5) NOT NULL DEFAULT '',
  rabatt4 varchar(5) NOT NULL DEFAULT '',
  rabatt5 varchar(5) NOT NULL DEFAULT '',
  rabatt6 varchar(5) NOT NULL DEFAULT '',
  rabatt7 varchar(5) NOT NULL DEFAULT '',
  mingewinn1 double NOT NULL DEFAULT '0',
  mingewinn2 double NOT NULL DEFAULT '0',
  mingewinn3 double NOT NULL DEFAULT '0',
  mingewinn4 double NOT NULL DEFAULT '0',
  mingewinn5 double NOT NULL DEFAULT '0',
  mingewinn6 double NOT NULL DEFAULT '0',
  mingewinn7 double NOT NULL DEFAULT '0',
  anreden varchar(255) NOT NULL DEFAULT '',
  titel varchar(255) NOT NULL DEFAULT '',
  standard char(1) NOT NULL DEFAULT '',
  schrittk int(11) NOT NULL DEFAULT '7',
  zarten longtext NOT NULL,
  rabatth varchar(5) NOT NULL DEFAULT '',
  rabattgh varchar(5) NOT NULL DEFAULT '',
  schritta int(11) NOT NULL DEFAULT '0',
  rechzus longtext NOT NULL,
  werbetexte longtext NOT NULL,
  ve text NOT NULL,
  vh text NOT NULL,
  schrittm int(11) NOT NULL DEFAULT '0',
  schrittt int(11) NOT NULL DEFAULT '0',
  iknr varchar(10) NOT NULL DEFAULT '',
  inventurlistenkopfzeile varchar(255) NOT NULL DEFAULT '',
  mahnkosten1 decimal(10,2) NOT NULL DEFAULT '0.00',
  mahnkosten2 decimal(10,2) NOT NULL DEFAULT '0.00',
  mahnkosten3 decimal(10,2) NOT NULL DEFAULT '0.00',
  mahntext1 longtext NOT NULL,
  mahntext2 longtext NOT NULL,
  mahntext3 longtext NOT NULL,
  betrefftexte longtext NOT NULL,
  kassebetreff longtext NOT NULL,
  ddbzw int(11) NOT NULL DEFAULT '0',
  artkat text NOT NULL,
  werbb text NOT NULL,
  kombimodusak1 char(1) NOT NULL DEFAULT '0',
  kombimodusak2 char(1) NOT NULL DEFAULT '0',
  labeldatei tinytext NOT NULL,
  labelstat varchar(20) NOT NULL DEFAULT '0',
  kundentimestamp timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  uptime bigint(20) NOT NULL DEFAULT '0',
  unterbrechungen text NOT NULL,
  pausen text NOT NULL,
  lastfix int(11) NOT NULL DEFAULT '0',
  eigliefkennung text NOT NULL,
  allgaw decimal(3,2) NOT NULL DEFAULT '0.00',
  kundekat longtext NOT NULL,
  labeldrucker longtext NOT NULL,
  vdaknr tinytext NOT NULL,
  datei\_upload text NOT NULL,
  art\_gaenge text NOT NULL,
  art\_ausstattung text NOT NULL,
  art\_akkus text NOT NULL,
  dfueverbindung tinytext NOT NULL,
  supportaktiv tinyint(4) NOT NULL DEFAULT '0',
  artikelkeinabwesend text NOT NULL,
  kopftextverwenden int(11) NOT NULL DEFAULT '1',
  zahlungsbedingungen text NOT NULL,
  bondrucker tinytext,
  quickkunde int(11) DEFAULT NULL,
  quickr\_kopftext text NOT NULL,
  quickr\_betreff tinytext NOT NULL,
  quickr\_zusatzkosten tinytext NOT NULL,
  quickr\_zahlungsbedingungen tinytext NOT NULL,
  quickr\_vonwo text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

wenn ich versuche sie umzustellen bekomme ich:

Error Code : 1005
Can't create table 'rt.#sql-175c_f' (errno: 140)

ich habe mittlerweile alle logntext-felder auf text gestellt, was aber nichts hilft

wenn ich eine gewisse anzahl an feldern heraus nehme funktioniert es
daher nehme ich an, dass es was mit der maximalen theoretischen größe eines datensatzes zu tun hat ... aber ich steig noch nicht wirklich dahinter, het jemand von euch damit erfahrung?

wäre suuuuper ;)

vielen dank schonmal im voraus!

  1. Hi!

    Error Code : 1005
    Can't create table 'rt.#sql-175c_f' (errno: 140)
    daher nehme ich an, dass es was mit der maximalen theoretischen größe eines datensatzes zu tun hat ... aber ich steig noch nicht wirklich dahinter, het jemand von euch damit erfahrung?

    Einmal Suchen nach "myisam ndb 1005" findet eine gleichartige Frage im MySQL-Forum und die dortige Antwort hat auch einen Lösungsvorschlag parat.

    Lo!

    1. Hi!

      Error Code : 1005
      Can't create table 'rt.#sql-175c_f' (errno: 140)
      daher nehme ich an, dass es was mit der maximalen theoretischen größe eines datensatzes zu tun hat ... aber ich steig noch nicht wirklich dahinter, het jemand von euch damit erfahrung?

      Einmal Suchen nach "myisam ndb 1005" findet eine gleichartige Frage im MySQL-Forum und die dortige Antwort hat auch einen Lösungsvorschlag parat.

      Lo!

      hm, sorry ich finde zwar forumeinträge, aber immer mit anderen fehlernummern, nicht errno: 140, hast du vielleicht den entsprechenden link für mich?

      1. Hi!

        Error Code : 1005
        Can't create table 'rt.#sql-175c_f' (errno: 140)
        Einmal Suchen nach "myisam ndb 1005" findet eine gleichartige Frage im MySQL-Forum und die dortige Antwort hat auch einen Lösungsvorschlag parat.
        hm, sorry ich finde zwar forumeinträge, aber immer mit anderen fehlernummern, nicht errno: 140, hast du vielleicht den entsprechenden link für mich?

        Die 140 hatte ich ignoriert, aber wenn man die ebenfalls in die Suche aufnimmt, bekommt man unter anderem eine MySQL-Handbuchseite gelistet.

        Lo!

        1. Hi!

          Error Code : 1005
          Can't create table 'rt.#sql-175c_f' (errno: 140)
          Einmal Suchen nach "myisam ndb 1005" findet eine gleichartige Frage im MySQL-Forum und die dortige Antwort hat auch einen Lösungsvorschlag parat.
          hm, sorry ich finde zwar forumeinträge, aber immer mit anderen fehlernummern, nicht errno: 140, hast du vielleicht den entsprechenden link für mich?

          Die 140 hatte ich ignoriert, aber wenn man die ebenfalls in die Suche aufnimmt, bekommt man unter anderem eine MySQL-Handbuchseite gelistet.

          Lo!

          huhu, wenn du das hier meinst, das hatte ich letzte nacht auch schon gefunden:

          mysql> CREATE TABLE t1 (
              ->     c1 INT STORAGE DISK,
              ->     c2 INT STORAGE MEMORY
              -> ) ENGINE NDB;
          ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)

          mysql> CREATE TABLE t1 (
              ->     c1 INT STORAGE DISK,
              ->     c2 INT STORAGE MEMORY
              -> ) TABLESPACE ts_1 ENGINE NDB;
          Query OK, 0 rows affected (1.06 sec)

          hierbei werden ja verschiedenen feldern unterschiedliche speicherorte vorgegeben, das will ich ja garnicht, ich will ja einfach nur eine vorhandene tabelle komplett engine=ndbcluster setzen, und dabei wirft er mir diesen fehler aus

          was ich mich noch wundere, wenn ich beispielsweise ein paar felder weg nehme, sodass ich nur noch 99 beispielsweise habe (103 sind wieder zu viel) dann klappt es anscheinend ...

          habnun mittlerweile auch schon in der config.ini
          MaxNoOfUniqueHashIndexes=164
          MaxNoOfOrderedIndexes=164
          gesetzt, aber es hilft leider nix ;(

          hast du denn erfahrung mit mysql-cluster?

          1. Hi!

            huhu, wenn du das hier meinst, das hatte ich letzte nacht auch schon gefunden:

            Da ich nicht weiß, was du alles schon gefunden und probiert hast, kann es vorkommen, dass ich auf Dinge verweise, die du schon kennst.

            hast du denn erfahrung mit mysql-cluster?

            Nein, da du aber nicht von deinen Fundstellen und Versuchen erzählt hast, und ich recht einfach zu den gegebenen Stichpunkten Ergebnisse fand, nahm ich an, es mangelt dir schon an Recherchekenntnissen und wollte dich zumindest ermutigen, die Kenntnisse des Netzes zu erkunden.

            Lo!

            1. ja, naja ich hab das mal im mysql-forum gepostet, wenn ich da eine lösung finde werd ich se hier auch noch posten, mal schauen was dabei rum kommt ;)

              ich danke dir dennoch erstmal für deine mühe!